Generated by Cython 0.29.21
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: model_cy.c
0001: # cython: profile=True
+0002: import numpy as np
__pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0003: import pandas as pd
__pyx_t_1 = __Pyx_Import(__pyx_n_s_pandas, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pd, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0004: import collections as cl
__pyx_t_1 = __Pyx_Import(__pyx_n_s_collections, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_cl, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0005: import sys
__pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0006: import calendar
__pyx_t_1 = __Pyx_Import(__pyx_n_s_calendar, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_calendar, __pyx_t_1) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0007: import json
__pyx_t_1 = __Pyx_Import(__pyx_n_s_json, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_json, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0008: import matplotlib.pyplot as plt
/* "calfews_src/model_cy.pyx":8 * import calendar * import json * import matplotlib.pyplot as plt # <<<<<<<<<<<<<< * from datetime import datetime * from .util import * */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s__30); __Pyx_GIVEREF(__pyx_n_s__30); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__30); __pyx_t_2 = __Pyx_Import(__pyx_n_s_matplotlib_pyplot, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_plt, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0009: from datetime import datetime
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_datetime); __Pyx_GIVEREF(__pyx_n_s_datetime); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_datetime); __pyx_t_1 = __Pyx_Import(__pyx_n_s_datetime, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0010: from .util import *
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s__30); __Pyx_GIVEREF(__pyx_n_s__30); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__30); __pyx_t_2 = __Pyx_Import(__pyx_n_s_util, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_import_star(__pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0011:
+0012: cdef class Model():
struct __pyx_vtabstruct_11calfews_src_8model_cy_Model {
PyObject *(*search_canal_demand)(struct __pyx_obj_11calfews_src_8model_cy_Model *, int, struct __pyx_obj_11calfews_src_8canal_cy_Canal *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *, PyObject *);
PyObject *(*distribute_canal_deliveries)(struct __pyx_obj_11calfews_src_8model_cy_Model *, int, struct __pyx_obj_11calfews_src_8canal_cy_Canal *, PyObject *, PyObject *, double, int, int, PyObject *, PyObject *, PyObject *);
void (*find_node_demand_bank)(struct __pyx_obj_11calfews_src_8model_cy_Model *, struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *, struct __pyx_obj_11calfews_src_8canal_cy_Canal *, int, PyObject *, PyObject *, PyObject *, int, int, PyObject *, PyObject *);
__pyx_ctuple_double__and_double (*delivery_recovery)(struct __pyx_obj_11calfews_src_8model_cy_Model *, PyObject *, struct __pyx_obj_11calfews_src_8canal_cy_Canal *, PyObject *, int, PyObject *, double, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, int);
void (*flood_operations)(struct __pyx_obj_11calfews_src_8model_cy_Model *, int, int, int, int, struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *, PyObject *, int, PyObject *);
void (*find_node_demand_district)(struct __pyx_obj_11calfews_src_8model_cy_Model *, struct __pyx_obj_11calfews_src_11district_cy_District *, struct __pyx_obj_11calfews_src_8canal_cy_Canal *, int, double, PyObject *, PyObject *, PyObject *, int, int, PyObject *, PyObject *, int);
};
static struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *__pyx_vtabptr_11calfews_src_8model_cy_Model;
0013:
+0014: def __init__(self, input_data_file, expected_release_datafile, model_mode, demand_type, sensitivity_sample_number=-1, sensitivity_sample_names=[], sensitivity_sample=[], sensitivity_factors = None):
/* Python wrapper */
static int __pyx_pw_11calfews_src_8model_cy_5Model_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11calfews_src_8model_cy_5Model_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_input_data_file = 0;
PyObject *__pyx_v_expected_release_datafile = 0;
PyObject *__pyx_v_model_mode = 0;
PyObject *__pyx_v_demand_type = 0;
PyObject *__pyx_v_sensitivity_sample_number = 0;
PyObject *__pyx_v_sensitivity_sample_names = 0;
PyObject *__pyx_v_sensitivity_sample = 0;
PyObject *__pyx_v_sensitivity_factors = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input_data_file,&__pyx_n_s_expected_release_datafile,&__pyx_n_s_model_mode,&__pyx_n_s_demand_type,&__pyx_n_s_sensitivity_sample_number,&__pyx_n_s_sensitivity_sample_names,&__pyx_n_s_sensitivity_sample,&__pyx_n_s_sensitivity_factors,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
values[4] = ((PyObject *)__pyx_int_neg_1);
values[5] = __pyx_k_;
values[6] = __pyx_k__2;
values[7] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_data_file)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_expected_release_datafile)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 8, 1); __PYX_ERR(0, 14, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model_mode)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 8, 2); __PYX_ERR(0, 14, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_demand_type)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 8, 3); __PYX_ERR(0, 14, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample_number);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample_names);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_factors);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 14, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_input_data_file = values[0];
__pyx_v_expected_release_datafile = values[1];
__pyx_v_model_mode = values[2];
__pyx_v_demand_type = values[3];
__pyx_v_sensitivity_sample_number = values[4];
__pyx_v_sensitivity_sample_names = values[5];
__pyx_v_sensitivity_sample = values[6];
__pyx_v_sensitivity_factors = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 14, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model___init__(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_input_data_file, __pyx_v_expected_release_datafile, __pyx_v_model_mode, __pyx_v_demand_type, __pyx_v_sensitivity_sample_number, __pyx_v_sensitivity_sample_names, __pyx_v_sensitivity_sample, __pyx_v_sensitivity_factors);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11calfews_src_8model_cy_5Model___init__(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_input_data_file, PyObject *__pyx_v_expected_release_datafile, PyObject *__pyx_v_model_mode, PyObject *__pyx_v_demand_type, PyObject *__pyx_v_sensitivity_sample_number, PyObject *__pyx_v_sensitivity_sample_names, PyObject *__pyx_v_sensitivity_sample, PyObject *__pyx_v_sensitivity_factors) {
PyObject *__pyx_v_year_list = NULL;
PyObject *__pyx_v_short_year_list = NULL;
PyObject *__pyx_v_short_leap = NULL;
PyObject *__pyx_7genexpr__pyx_v__ = NULL;
PyObject *__pyx_8genexpr1__pyx_v__ = NULL;
PyObject *__pyx_8genexpr2__pyx_v__ = NULL;
PyObject *__pyx_8genexpr3__pyx_v__ = NULL;
PyObject *__pyx_8genexpr4__pyx_v__ = NULL;
PyObject *__pyx_8genexpr5__pyx_v__ = NULL;
PyObject *__pyx_8genexpr6__pyx_v__ = NULL;
PyObject *__pyx_8genexpr7__pyx_v__ = NULL;
int __pyx_r;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
__Pyx_TraceCall("__init__", __pyx_f[0], 14, 0, __PYX_ERR(0, 14, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("calfews_src.model_cy.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_year_list);
__Pyx_XDECREF(__pyx_v_short_year_list);
__Pyx_XDECREF(__pyx_v_short_leap);
__Pyx_XDECREF(__pyx_7genexpr__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr3__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr4__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v__);
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v__);
__Pyx_TraceReturn(Py_None, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_k_ = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_k__2 = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
0015: ##Set model dataset & index length
+0016: self.df = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->df); __Pyx_DECREF(__pyx_v_self->df); __pyx_v_self->df = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0017: self.df.append(pd.read_csv(input_data_file, index_col=0, parse_dates=True))
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 17, __pyx_L1_error)
}
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_input_data_file);
__Pyx_GIVEREF(__pyx_v_input_data_file);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_input_data_file);
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->df, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 17, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0018: self.model_mode = model_mode
if (!(likely(PyUnicode_CheckExact(__pyx_v_model_mode))||((__pyx_v_model_mode) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_model_mode)->tp_name), 0))) __PYX_ERR(0, 18, __pyx_L1_error) __pyx_t_4 = __pyx_v_model_mode; __Pyx_INCREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->model_mode); __Pyx_DECREF(__pyx_v_self->model_mode); __pyx_v_self->model_mode = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0019: self.demand_type = demand_type
if (!(likely(PyUnicode_CheckExact(__pyx_v_demand_type))||((__pyx_v_demand_type) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_demand_type)->tp_name), 0))) __PYX_ERR(0, 19, __pyx_L1_error) __pyx_t_4 = __pyx_v_demand_type; __Pyx_INCREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->demand_type); __Pyx_DECREF(__pyx_v_self->demand_type); __pyx_v_self->demand_type = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0020: self.T = len(self.df[0])
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 20, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 20, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_self->T = __pyx_t_6;
+0021: self.day_year = [int(_) for _ in self.df[0].index.dayofyear]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 21, __pyx_L5_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 21, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 21, __pyx_L5_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 21, __pyx_L5_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_7(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 21, __pyx_L5_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v__, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyNumber_Int(__pyx_7genexpr__pyx_v__); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 21, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_7genexpr__pyx_v__); __pyx_7genexpr__pyx_v__ = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_7genexpr__pyx_v__); __pyx_7genexpr__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->day_year);
__Pyx_DECREF(__pyx_v_self->day_year);
__pyx_v_self->day_year = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+0022: self.day_month = [int(_) for _ in self.df[0].index.day]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 22, __pyx_L11_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 22, __pyx_L11_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 22, __pyx_L11_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 22, __pyx_L11_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_7(__pyx_t_3);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 22, __pyx_L11_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v__, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_8genexpr1__pyx_v__); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 22, __pyx_L11_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v__); __pyx_8genexpr1__pyx_v__ = 0;
goto __pyx_L14_exit_scope;
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v__); __pyx_8genexpr1__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L14_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->day_month);
__Pyx_DECREF(__pyx_v_self->day_month);
__pyx_v_self->day_month = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+0023: self.month = [int(_) for _ in self.df[0].index.month]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 23, __pyx_L17_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 23, __pyx_L17_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 23, __pyx_L17_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 23, __pyx_L17_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_7(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 23, __pyx_L17_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v__, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyNumber_Int(__pyx_8genexpr2__pyx_v__); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 23, __pyx_L17_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v__); __pyx_8genexpr2__pyx_v__ = 0;
goto __pyx_L20_exit_scope;
__pyx_L17_error:;
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v__); __pyx_8genexpr2__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L20_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->month);
__Pyx_DECREF(__pyx_v_self->month);
__pyx_v_self->month = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+0024: self.year = [int(_) for _ in self.df[0].index.year]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_self->df == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 24, __pyx_L23_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 24, __pyx_L23_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 24, __pyx_L23_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 24, __pyx_L23_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_7(__pyx_t_3);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 24, __pyx_L23_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v__, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_8genexpr3__pyx_v__); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 24, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_8genexpr3__pyx_v__); __pyx_8genexpr3__pyx_v__ = 0;
goto __pyx_L26_exit_scope;
__pyx_L23_error:;
__Pyx_XDECREF(__pyx_8genexpr3__pyx_v__); __pyx_8genexpr3__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->year);
__Pyx_DECREF(__pyx_v_self->year);
__pyx_v_self->year = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+0025: self.starting_year = self.year[0]
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 25, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->year, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_self->starting_year = __pyx_t_8;
+0026: self.ending_year = self.year[-1]
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 26, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->year, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_self->ending_year = __pyx_t_8;
+0027: self.number_years = self.ending_year - self.starting_year
__pyx_v_self->number_years = (__pyx_v_self->ending_year - __pyx_v_self->starting_year);
+0028: self.dowy = water_day(self.day_year, self.year)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_water_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_self->day_year, __pyx_v_self->year}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_self->day_year, __pyx_v_self->year}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_self->day_year); __Pyx_GIVEREF(__pyx_v_self->day_year); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_self->day_year); __Pyx_INCREF(__pyx_v_self->year); __Pyx_GIVEREF(__pyx_v_self->year); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_self->year); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->dowy); __Pyx_DECREF(__pyx_v_self->dowy); __pyx_v_self->dowy = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0029: self.water_year = water_year(self.month, self.year, self.starting_year)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_water_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_self->month, __pyx_v_self->year, __pyx_t_2}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_self->month, __pyx_v_self->year, __pyx_t_2}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_self->month); __Pyx_GIVEREF(__pyx_v_self->month); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->month); __Pyx_INCREF(__pyx_v_self->year); __Pyx_GIVEREF(__pyx_v_self->year); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_self->year); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->water_year); __Pyx_DECREF(__pyx_v_self->water_year); __pyx_v_self->water_year = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0030: self.leap = leap(np.arange(min(self.year), max(self.year) + 2))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_leap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_arange); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_self->year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_self->year); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_t_10, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_2, __pyx_t_11}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_2, __pyx_t_11}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_11); __pyx_t_2 = 0; __pyx_t_11 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->leap); __Pyx_DECREF(__pyx_v_self->leap); __pyx_v_self->leap = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0031: year_list = np.arange(min(self.year), max(self.year) + 2)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_arange); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_self->year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_self->year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_12}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_3, __pyx_t_12}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_8, __pyx_t_12); __pyx_t_3 = 0; __pyx_t_12 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_year_list = __pyx_t_4; __pyx_t_4 = 0;
+0032: self.days_in_month = days_in_month(year_list, self.leap)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_v_year_list, __pyx_v_self->leap}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_v_year_list, __pyx_v_self->leap}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = NULL; } __Pyx_INCREF(__pyx_v_year_list); __Pyx_GIVEREF(__pyx_v_year_list); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_year_list); __Pyx_INCREF(__pyx_v_self->leap); __Pyx_GIVEREF(__pyx_v_self->leap); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_self->leap); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->days_in_month); __Pyx_DECREF(__pyx_v_self->days_in_month); __pyx_v_self->days_in_month = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0033: self.dowy_eom = dowy_eom(year_list, self.leap)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_year_list, __pyx_v_self->leap}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_year_list, __pyx_v_self->leap}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_year_list); __Pyx_GIVEREF(__pyx_v_year_list); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_8, __pyx_v_year_list); __Pyx_INCREF(__pyx_v_self->leap); __Pyx_GIVEREF(__pyx_v_self->leap); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_8, __pyx_v_self->leap); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->dowy_eom); __Pyx_DECREF(__pyx_v_self->dowy_eom); __pyx_v_self->dowy_eom = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0034: self.non_leap_year = first_non_leap_year(self.dowy_eom)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_first_non_leap_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_v_self->dowy_eom) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_self->dowy_eom); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_self->non_leap_year = __pyx_t_8;
+0035: self.first_d_of_month = first_d_of_month(self.dowy_eom, self.days_in_month)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_first_d_of_month); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_v_self->dowy_eom, __pyx_v_self->days_in_month}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_v_self->dowy_eom, __pyx_v_self->days_in_month}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = NULL; } __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_self->dowy_eom); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_self->days_in_month); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->first_d_of_month); __Pyx_DECREF(__pyx_v_self->first_d_of_month); __pyx_v_self->first_d_of_month = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
0036:
+0037: self.df_short = []
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->df_short); __Pyx_DECREF(__pyx_v_self->df_short); __pyx_v_self->df_short = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+0038: self.df_short.append(pd.read_csv(expected_release_datafile, index_col=0, parse_dates=True))
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 38, __pyx_L1_error)
}
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_expected_release_datafile);
__Pyx_GIVEREF(__pyx_v_expected_release_datafile);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_expected_release_datafile);
__pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 38, __pyx_L1_error)
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->df_short, __pyx_t_11); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 38, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0039: self.T_short = len(self.df_short[0])
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 39, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 39, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_6 = PyObject_Length(__pyx_t_11); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 39, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_v_self->T_short = __pyx_t_6;
+0040: self.short_day_year = [int(_) for _ in self.df_short[0].index.dayofyear]
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 40, __pyx_L29_error)
}
__pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
__pyx_t_4 = __pyx_t_12; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 40, __pyx_L29_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 40, __pyx_L29_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 40, __pyx_L29_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
}
} else {
__pyx_t_12 = __pyx_t_7(__pyx_t_4);
if (unlikely(!__pyx_t_12)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 40, __pyx_L29_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_12);
}
__Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v__, __pyx_t_12);
__pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyNumber_Int(__pyx_8genexpr4__pyx_v__); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 40, __pyx_L29_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_8genexpr4__pyx_v__); __pyx_8genexpr4__pyx_v__ = 0;
goto __pyx_L32_exit_scope;
__pyx_L29_error:;
__Pyx_XDECREF(__pyx_8genexpr4__pyx_v__); __pyx_8genexpr4__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L32_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_v_self->short_day_year);
__Pyx_DECREF(__pyx_v_self->short_day_year);
__pyx_v_self->short_day_year = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+0041: self.short_day_month = [int(_) for _ in self.df_short[0].index.day]
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 41, __pyx_L35_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_index); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
__pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_7 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L35_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_12))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 41, __pyx_L35_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 41, __pyx_L35_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_7(__pyx_t_12);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 41, __pyx_L35_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v__, __pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyNumber_Int(__pyx_8genexpr5__pyx_v__); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 41, __pyx_L35_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v__); __pyx_8genexpr5__pyx_v__ = 0;
goto __pyx_L38_exit_scope;
__pyx_L35_error:;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v__); __pyx_8genexpr5__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L38_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_v_self->short_day_month);
__Pyx_DECREF(__pyx_v_self->short_day_month);
__pyx_v_self->short_day_month = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+0042: self.short_month = [int(_) for _ in self.df_short[0].index.month]
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 42, __pyx_L41_error)
}
__pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_month); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
__pyx_t_4 = __pyx_t_12; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 42, __pyx_L41_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 42, __pyx_L41_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 42, __pyx_L41_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
}
} else {
__pyx_t_12 = __pyx_t_7(__pyx_t_4);
if (unlikely(!__pyx_t_12)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 42, __pyx_L41_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_12);
}
__Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v__, __pyx_t_12);
__pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyNumber_Int(__pyx_8genexpr6__pyx_v__); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 42, __pyx_L41_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v__); __pyx_8genexpr6__pyx_v__ = 0;
goto __pyx_L44_exit_scope;
__pyx_L41_error:;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v__); __pyx_8genexpr6__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L44_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_v_self->short_month);
__Pyx_DECREF(__pyx_v_self->short_month);
__pyx_v_self->short_month = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+0043: self.short_year = [int(_) for _ in self.df_short[0].index.year]
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 43, __pyx_L47_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_index); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
__pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_7 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 43, __pyx_L47_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_12))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 43, __pyx_L47_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 43, __pyx_L47_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_7(__pyx_t_12);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 43, __pyx_L47_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XDECREF_SET(__pyx_8genexpr7__pyx_v__, __pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyNumber_Int(__pyx_8genexpr7__pyx_v__); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 43, __pyx_L47_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v__); __pyx_8genexpr7__pyx_v__ = 0;
goto __pyx_L50_exit_scope;
__pyx_L47_error:;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v__); __pyx_8genexpr7__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L50_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_v_self->short_year);
__Pyx_DECREF(__pyx_v_self->short_year);
__pyx_v_self->short_year = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+0044: self.short_starting_year = self.short_year[0]
if (unlikely(__pyx_v_self->short_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 44, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_self->short_year, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 44, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 44, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_v_self->short_starting_year = __pyx_t_8;
+0045: self.short_ending_year = self.short_year[-1]
if (unlikely(__pyx_v_self->short_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 45, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_self->short_year, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_v_self->short_ending_year = __pyx_t_8;
+0046: self.short_number_years = self.short_ending_year - self.short_starting_year
__pyx_v_self->short_number_years = (__pyx_v_self->short_ending_year - __pyx_v_self->short_starting_year);
+0047: self.short_dowy = water_day(self.short_day_year, self.short_year)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_water_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_self->short_day_year, __pyx_v_self->short_year}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_self->short_day_year, __pyx_v_self->short_year}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_self->short_day_year); __Pyx_GIVEREF(__pyx_v_self->short_day_year); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->short_day_year); __Pyx_INCREF(__pyx_v_self->short_year); __Pyx_GIVEREF(__pyx_v_self->short_year); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_self->short_year); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_9, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->short_dowy); __Pyx_DECREF(__pyx_v_self->short_dowy); __pyx_v_self->short_dowy = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+0048: self.short_water_year = water_year(self.short_month, self.short_year, self.short_starting_year)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_water_year); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_self->short_starting_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_self->short_month, __pyx_v_self->short_year, __pyx_t_9}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_self->short_month, __pyx_v_self->short_year, __pyx_t_9}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_self->short_month); __Pyx_GIVEREF(__pyx_v_self->short_month); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_self->short_month); __Pyx_INCREF(__pyx_v_self->short_year); __Pyx_GIVEREF(__pyx_v_self->short_year); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_self->short_year); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_3, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->short_water_year); __Pyx_DECREF(__pyx_v_self->short_water_year); __pyx_v_self->short_water_year = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+0049: short_year_list = np.arange(min(self.short_year), max(self.short_year)+2)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_arange); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_self->short_year); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_self->short_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_12, __pyx_t_4}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_12, __pyx_t_4}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_4); __pyx_t_12 = 0; __pyx_t_4 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_short_year_list = __pyx_t_11; __pyx_t_11 = 0;
+0050: short_leap = leap(short_year_list)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_leap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_11 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_v_short_year_list) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_short_year_list); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_short_leap = __pyx_t_11; __pyx_t_11 = 0;
+0051: self.short_days_in_month = days_in_month(short_year_list, short_leap)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_short_year_list, __pyx_v_short_leap}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_short_year_list, __pyx_v_short_leap}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_short_year_list); __Pyx_GIVEREF(__pyx_v_short_year_list); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_v_short_year_list); __Pyx_INCREF(__pyx_v_short_leap); __Pyx_GIVEREF(__pyx_v_short_leap); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_v_short_leap); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->short_days_in_month); __Pyx_DECREF(__pyx_v_self->short_days_in_month); __pyx_v_self->short_days_in_month = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
0052:
0053:
+0054: if sensitivity_sample_number == -1:
__pyx_t_11 = __Pyx_PyInt_EqObjC(__pyx_v_sensitivity_sample_number, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L51; }
+0055: self.use_sensitivity = False
__pyx_v_self->use_sensitivity = 0;
0056: else:
+0057: self.use_sensitivity = True
/*else*/ {
__pyx_v_self->use_sensitivity = 1;
+0058: self.sensitivity_sample_number = sensitivity_sample_number
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_sensitivity_sample_number); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 58, __pyx_L1_error) __pyx_v_self->sensitivity_sample_number = __pyx_t_8;
+0059: self.sensitivity_sample_names = sensitivity_sample_names
if (!(likely(PyList_CheckExact(__pyx_v_sensitivity_sample_names))||((__pyx_v_sensitivity_sample_names) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_sensitivity_sample_names)->tp_name), 0))) __PYX_ERR(0, 59, __pyx_L1_error) __pyx_t_11 = __pyx_v_sensitivity_sample_names; __Pyx_INCREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->sensitivity_sample_names); __Pyx_DECREF(__pyx_v_self->sensitivity_sample_names); __pyx_v_self->sensitivity_sample_names = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+0060: self.sensitivity_sample = sensitivity_sample
if (!(likely(PyList_CheckExact(__pyx_v_sensitivity_sample))||((__pyx_v_sensitivity_sample) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_sensitivity_sample)->tp_name), 0))) __PYX_ERR(0, 60, __pyx_L1_error) __pyx_t_11 = __pyx_v_sensitivity_sample; __Pyx_INCREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->sensitivity_sample); __Pyx_DECREF(__pyx_v_self->sensitivity_sample); __pyx_v_self->sensitivity_sample = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+0061: self.sensitivity_factors = sensitivity_factors
if (!(likely(PyList_CheckExact(__pyx_v_sensitivity_factors))||((__pyx_v_sensitivity_factors) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_sensitivity_factors)->tp_name), 0))) __PYX_ERR(0, 61, __pyx_L1_error) __pyx_t_11 = __pyx_v_sensitivity_factors; __Pyx_INCREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __Pyx_GOTREF(__pyx_v_self->sensitivity_factors); __Pyx_DECREF(__pyx_v_self->sensitivity_factors); __pyx_v_self->sensitivity_factors = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+0062: self.set_sensitivity_factors()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_11 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __pyx_L51:;
0063:
0064:
+0065: def object_equals(self, other, return_full=False):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_3object_equals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_3object_equals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_other = 0;
PyObject *__pyx_v_return_full = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("object_equals (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_other,&__pyx_n_s_return_full,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)Py_False);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_other)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_full);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "object_equals") < 0)) __PYX_ERR(0, 65, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_other = values[0];
__pyx_v_return_full = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("object_equals", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 65, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.object_equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_2object_equals(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_other, __pyx_v_return_full);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_2object_equals(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_other, PyObject *__pyx_v_return_full) {
PyObject *__pyx_v_equality = NULL;
PyObject *__pyx_v_differences = NULL;
PyObject *__pyx_v_i = NULL;
PyObject *__pyx_v_j = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("object_equals", 0);
__Pyx_TraceCall("object_equals", __pyx_f[0], 65, 0, __PYX_ERR(0, 65, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("calfews_src.model_cy.Model.object_equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_equality);
__Pyx_XDECREF(__pyx_v_differences);
__Pyx_XDECREF(__pyx_v_i);
__Pyx_XDECREF(__pyx_v_j);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0066: ##This function compares two instances of a model object, returns True if all attributes are identical.
+0067: equality = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_equality = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0068: if (self.__dict__.keys() != other.__dict__.keys()):
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* … */ }
+0069: return ('Different Attributes')
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_Different_Attributes); __pyx_r = __pyx_kp_u_Different_Attributes; goto __pyx_L0;
0070: else:
+0071: differences = 0
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__pyx_v_differences = __pyx_int_0;
+0072: for i in self.__dict__.keys():
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_t_3 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
__PYX_ERR(0, 72, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_t_3, 0, __pyx_n_s_keys, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_7, &__pyx_t_6, &__pyx_t_1, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 72, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
__pyx_t_1 = 0;
+0073: if ((type(self.__getattribute__(i)) is Canal) | (type(self.__getattribute__(i)) is Contract) |
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ if (__pyx_t_15) { /* … */ goto __pyx_L6; }
+0074: (type(self.__getattribute__(i)) is District) | (type(self.__getattribute__(i)) is Private) |
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_12 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_10private_cy_Private)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0075: (type(self.__getattribute__(i)) is Reservoir) | (type(self.__getattribute__(i)) is Waterbank)):
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = ((((((__pyx_t_5 | __pyx_t_10) | __pyx_t_11) | __pyx_t_12) | __pyx_t_13) | __pyx_t_14) != 0);
+0076: equality[i] = self.__getattribute__(i).object_equals(other.__getattribute__(i))
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_object_equals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0077: elif type(self.__getattribute__(i)) is dict:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_15 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)(&PyDict_Type))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14 = (__pyx_t_15 != 0); if (__pyx_t_14) { /* … */ goto __pyx_L6; }
+0078: equality[i] = True
if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_True) < 0)) __PYX_ERR(0, 78, __pyx_L1_error)
+0079: for j in self.__getattribute__(i).keys():
__pyx_t_18 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_16 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_16)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_16);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_t_2 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
__PYX_ERR(0, 79, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_t_2, 0, __pyx_n_s_keys, (&__pyx_t_19), (&__pyx_t_9)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_19, &__pyx_t_18, &__pyx_t_3, NULL, NULL, __pyx_t_9);
if (unlikely(__pyx_t_20 == 0)) break;
if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 79, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_3);
__pyx_t_3 = 0;
+0080: if (type(self.__getattribute__(i)[j] == other.__getattribute__(i)[j]) is bool):
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_14 = (((PyObject *)Py_TYPE(__pyx_t_3)) == ((PyObject*)&PyBool_Type)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_15 = (__pyx_t_14 != 0); if (__pyx_t_15) { /* … */ goto __pyx_L9; }
+0081: if ((self.__getattribute__(i)[j] == other.__getattribute__(i)[j]) == False):
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_17 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_15) { /* … */ }
+0082: equality[i] = False
if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_False) < 0)) __PYX_ERR(0, 82, __pyx_L1_error)
0083: else:
+0084: if ((self.__getattribute__(i)[j] == other.__getattribute__(i)[j]).all() == False):
/*else*/ {
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_16, function);
}
}
__pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_21 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_17);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_17, function);
}
}
__pyx_t_3 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_21, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_all); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_17);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_17, function);
}
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyObject_RichCompare(__pyx_t_2, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 84, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_15) {
/* … */
}
}
__pyx_L9:;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0085: equality[i] = False
if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_False) < 0)) __PYX_ERR(0, 85, __pyx_L1_error)
0086: else:
+0087: if (type(self.__getattribute__(i) == other.__getattribute__(i)) is bool):
/*else*/ {
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 87, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_17);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_17, function);
}
}
__pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_17 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 87, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_15 = (((PyObject *)Py_TYPE(__pyx_t_2)) == ((PyObject*)&PyBool_Type));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_14 = (__pyx_t_15 != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L12;
}
+0088: equality[i] = (self.__getattribute__(i) == other.__getattribute__(i))
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_1, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_17 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_i); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0089: else:
+0090: equality[i] = np.array(self.__getattribute__(i) == other.__getattribute__(i)).all()
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_21 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_16);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_16, function);
}
}
__pyx_t_2 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_21, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_22 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_21);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_21, function);
}
}
__pyx_t_16 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_22, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_i);
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyObject_RichCompare(__pyx_t_2, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_16)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_16);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_17 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_21);
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_all); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_17) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_17) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 90, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L12:;
}
__pyx_L6:;
+0091: if (equality[i] == False):
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_equality, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_14) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+0092: differences += 1
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_differences, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_differences, __pyx_t_3); __pyx_t_3 = 0;
+0093: if return_full:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_v_return_full); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 93, __pyx_L1_error) if (__pyx_t_14) { /* … */ }
+0094: return (equality)
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_equality); __pyx_r = __pyx_v_equality; goto __pyx_L0;
0095: else:
+0096: return (differences == 0)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_differences, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
}
0097:
0098:
0099:
0100:
0101: #####################################################################################################################
0102: ############################# Object Creation ###############################################################
0103: #####################################################################################################################
+0104: def northern_initialization_routine(self, startTime):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_5northern_initialization_routine(PyObject *__pyx_v_self, PyObject *__pyx_v_startTime); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_5northern_initialization_routine(PyObject *__pyx_v_self, PyObject *__pyx_v_startTime) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("northern_initialization_routine (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_4northern_initialization_routine(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), ((PyObject *)__pyx_v_startTime));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_4northern_initialization_routine(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_startTime) {
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("northern_initialization_routine", 0);
__Pyx_TraceCall("northern_initialization_routine", __pyx_f[0], 104, 0, __PYX_ERR(0, 104, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("calfews_src.model_cy.Model.northern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0105: ######################################################################################
0106: ######################################################################################
0107: # preprocessing for the northern system
0108: ######################################################################################
0109: # initialize reservoirs
0110: # generates - regression coefficients & standard deviations for flow predictions (fnf & inf)
0111: # (at each reservoir)
0112: # self.res.rainflood_fnf; self.res.snowflood_fnf
0113: # self.res.rainflood_inf; self.res.snowflood_inf; self.res.baseline_inf
0114: # self.res.rainfnf_stds; self.res.snowfnf_stds
0115: # self.res.raininf_stds; self.res.snowinf_stds; self.res.baseinf_stds
0116: # self.res.flow_shape - monthly fractions of total period flow
+0117: self.initialize_northern_res()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_northern_res); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0118: # print('Initialize Northern Reservoirs, time ', datetime.now() - startTime)
0119: # initialize delta rules, calcluate expected environmental releases at each reservoir
0120: # generates - cumulative environmental/delta releases remaining (at each reservoir)
0121: # self.res.cum_min_release; self.res.aug_sept_min_release; self.res.oct_nov_min_release
+0122: self.initialize_delta_ops()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_delta_ops); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0123: # print('Initialize Delta Ops, time ', datetime.now() - startTime)
0124:
0125: ######
0126: # calculate projection-based flow year indicies using flow & snow inputs
0127: ##note: these values are pre-processed, but represent no 'foresight' WYT & WYI index use
0128: # snow-based projections to forecast flow, calculate running WY index & WYT
0129: # generates:
0130: # self.delta.forecastSJI (self.T x 1) - forecasts for san joaquin river index
0131: # self.delta.forecastSRI (self.T x 1) - forecasts for sacramento river index
+0132: self.find_running_WYI()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_running_WYI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0133: # print('Find Water Year Indicies, time ', datetime.now() - startTime)
0134:
0135: ######
0136: # calculate expected 'unstored' pumping at the delta (for predictions into San Luis)
0137: # this generates:
0138: # self.delta_gains_regression (365x2) - linear coeffecicients for predicting total unstored pumping, oct-mar, based on ytd full natural flow
0139: # self.delta_gains_regression2 (365x2) - linear coeffecicients for predicting total unstored pumping, apr-jul, based on ytd full natural flow
0140: # self.month_averages (12x1) - expected fraction of unstored pumping to come in each month (fraction is for total period flow, so 0.25 in feb is 25% of total oct-mar unstored flow)
+0141: self.predict_delta_gains()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_predict_delta_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0142: # print('Find Delta Gains, time ', datetime.now() - startTime)
+0143: if self.model_mode == 'validation':
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 143, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L3; }
+0144: self.set_regulations_historical_north()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_regulations_historical_north); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0145: else:
+0146: self.set_regulations_current_north()
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_regulations_current_north); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L3:;
0147:
+0148: return self.delta.omr_rule_start, self.delta.max_tax_free
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->delta->omr_rule_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_self->delta->max_tax_free); __Pyx_GIVEREF(__pyx_v_self->delta->max_tax_free); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->delta->max_tax_free); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0149: ######################################################################################
0150:
+0151: def southern_initialization_routine(self, startTime, scenario='baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_7southern_initialization_routine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_7southern_initialization_routine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_startTime = 0;
PyObject *__pyx_v_scenario = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("southern_initialization_routine (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_startTime,&__pyx_n_s_scenario,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)__pyx_n_u_baseline);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startTime)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "southern_initialization_routine") < 0)) __PYX_ERR(0, 151, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_startTime = values[0];
__pyx_v_scenario = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("southern_initialization_routine", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 151, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.southern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_6southern_initialization_routine(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_startTime, __pyx_v_scenario);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_6southern_initialization_routine(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_startTime, PyObject *__pyx_v_scenario) {
PyObject *__pyx_v_urban_datafile = NULL;
PyObject *__pyx_v_urban_datafile_cvp = NULL;
PyObject *__pyx_v_project_pumping_datafile = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("southern_initialization_routine", 0);
__Pyx_TraceCall("southern_initialization_routine", __pyx_f[0], 151, 0, __PYX_ERR(0, 151, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("calfews_src.model_cy.Model.southern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_urban_datafile);
__Pyx_XDECREF(__pyx_v_urban_datafile_cvp);
__Pyx_XDECREF(__pyx_v_project_pumping_datafile);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0152: ######################################################################################
0153: # preprocessing for the southern system
0154: ######################################################################################
0155: # initialize the southern reservoirs -
0156: # generates - same values as initialize_northern_res(), but for southern reservoirs
+0157: self.initialize_southern_res()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_southern_res); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0158: # print('Initialize Southern Reservoirs, time ', datetime.now() - startTime)
0159: # initialize water districts for southern model
0160: # generates - water district parameters (see calfews_src-combined/calfews_src/districts/readme.txt)
0161: # self.district_list - list of district objects
0162: # self.district_keys - dictionary pairing district keys w/district class objects
+0163: self.initialize_water_districts(scenario)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_water_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0164: # print('Initialize Water Districts, time ', datetime.now() - startTime)
0165: # initialize water contracts for southern model
0166: # generates - water contract parameters (see calfews_src-combined/calfews_src/contracts/readme.txt)
0167: # self.contract_list - list of contract objects
0168: # self.contract_keys - dictionary pairing contract keys w/contract class objects
0169: # self.res.contract_carryover_list - record of carryover space afforded to each contract (for all district)
+0170: self.initialize_sw_contracts()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_sw_contracts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0171: # print('Initialize Contracts, time ', datetime.now() - startTime)
0172: # initialize water banks for southern model
0173: # generates - water bank parameters (see calfews_src-combined/calfews_src/banks/readme.txt)
0174: # self.waterbank_list - list of waterbank objects
0175: # self.leiu_list - list of district objects that also operate as 'in leiu' or 'direct recharge' waterbanks
+0176: self.initialize_water_banks()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_water_banks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0177: # print('Initialize Water Banks, time ', datetime.now() - startTime)
0178: # initialize canals/waterways for southern model
0179: # generates - canal parameters (see calfews_src-combined/calfews_src/canals/readme.txt)
0180: # self.canal_list - list of canal objects
+0181: self.initialize_canals(scenario)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialize_canals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0182: # print('Initialize Canals, time ', datetime.now() - startTime)
+0183: if self.model_mode == 'validation':
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 183, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L3; }
+0184: self.set_regulations_historical_south(scenario)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_regulations_historical_south); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0185: else:
+0186: self.set_regulations_current_south(scenario)
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_regulations_current_south); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L3:;
0187:
0188: # create dictionaries that structure the relationships between
0189: # reservoirs, canals, districts, waterbanks, and contracts
0190: # generates:
0191: # self.canal_district - dict keys are canals, object lists place reservoirs, waterbanks, districts & other canals in order on a given canal
0192: # self.canal_priority - dict keys are canals, object lists are the 'main' canals that have 'priority' on the other canals (through turnouts)
0193: # self.reservoir_contract - dict keys are reservoirs, object lists are contracts stored in that reservoir
0194: # self.contract_reservoir - dict keys are contracts, objects (single) are reservoirs where that contract is stored (inverse of reservoir_contract)
0195: # self.canal_contract - dict keys are canals, object lists are contracts that have priority on those canals (primarily for flood flows)
0196: # self.reservoir_canal - dict keys are reservoirs, object lists are canal(s) that connect to the reservoir (note - only millerton has more than one canal)
0197: # Also initializes some canal properties
0198: # self.canal.demand - dictionary for the different types of demand that can be created at each canal node (note - these values are updated within model steps)
0199: # self.canal.flow - vector recording flow to a node on a canal (note - these values are updated within model steps)
0200: # self.canal.turnout_use - vector recording diversions to a node on a canal (note - these values are updated within model steps)
+0201: self.create_object_associations()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_create_object_associations); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0202: # print('Create Object Associations, time ', datetime.now() - startTime)
0203:
0204: ###Applies initial carryover balances to districts
0205: ##based on initial reservoir storage conditions
0206: ##PLEASE NOTE CARRYOVER STORAGE IN SAN LUIS IS HARD-CODED
+0207: self.find_initial_carryover()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_initial_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0208: # print('Initialize Carryover Storage, time ', datetime.now() - startTime)
0209: ##initial recovery capacities for districts, based on
0210: ##ownership stakes in waterbanks (direct + inleui)
+0211: self.init_tot_recovery()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_init_tot_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0212: # print('Initialize Recovery Capacity, time ', datetime.now() - startTime)
0213: ##initial recharge capacities (projected out 12 months) for districts,
0214: ##based on ownership stakes in waterbanks (direct + inleui + indistrict)
+0215: urban_datafile = 'calfews_src/data/input/calfews_src-data-urban.csv'
__Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_calfews_s);
__pyx_v_urban_datafile = __pyx_kp_u_calfews_src_data_input_calfews_s;
+0216: urban_datafile_cvp = 'calfews_src/data/input/pump-data-cvp.csv'
__Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_pump_data);
__pyx_v_urban_datafile_cvp = __pyx_kp_u_calfews_src_data_input_pump_data;
+0217: project_pumping_datafile = 'calfews_src/data/input/reservoir_results_no_validation.csv'
__Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_reservoir);
__pyx_v_project_pumping_datafile = __pyx_kp_u_calfews_src_data_input_reservoir;
+0218: self.project_urban(urban_datafile, urban_datafile_cvp, project_pumping_datafile)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_project_urban); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_urban_datafile, __pyx_v_urban_datafile_cvp, __pyx_v_project_pumping_datafile}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_urban_datafile, __pyx_v_urban_datafile_cvp, __pyx_v_project_pumping_datafile}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_urban_datafile); __Pyx_GIVEREF(__pyx_v_urban_datafile); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_urban_datafile); __Pyx_INCREF(__pyx_v_urban_datafile_cvp); __Pyx_GIVEREF(__pyx_v_urban_datafile_cvp); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_urban_datafile_cvp); __Pyx_INCREF(__pyx_v_project_pumping_datafile); __Pyx_GIVEREF(__pyx_v_project_pumping_datafile); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_project_pumping_datafile); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0219: # calculate how much recharge capacity is reachable from each reservoir
0220: # that is owned by surface water contracts held at that reservoir - used to determine
0221: # how much flood water can be released and 'taken' by a contractor
+0222: self.find_all_triggers()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0223: # print('Find Triggers, time ', datetime.now() - startTime)
0224:
0225:
0226:
+0227: def initialize_northern_res(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_9initialize_northern_res(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_9initialize_northern_res(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_northern_res (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_8initialize_northern_res(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_8initialize_northern_res(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_reservoir_list = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_northern_res", 0);
__Pyx_TraceCall("initialize_northern_res", __pyx_f[0], 227, 0, __PYX_ERR(0, 227, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_northern_res", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_reservoir_list);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0228:
0229: #########################################################################################
0230: #reservoir initialization for the northern delta system
0231: #########################################################################################
0232: cdef Reservoir reservoir_obj
0233:
0234: #4 Sacramento River Reservoirs (CVP & SWP)
+0235: self.shasta = Reservoir(self, 'shasta', 'SHA', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_shasta); __Pyx_GIVEREF(__pyx_n_u_shasta); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_shasta); __Pyx_INCREF(__pyx_n_u_SHA); __Pyx_GIVEREF(__pyx_n_u_SHA); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SHA); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->shasta); __Pyx_DECREF(((PyObject *)__pyx_v_self->shasta)); __pyx_v_self->shasta = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0236: self.folsom = Reservoir(self, 'folsom', 'FOL', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_folsom); __Pyx_GIVEREF(__pyx_n_u_folsom); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_folsom); __Pyx_INCREF(__pyx_n_u_FOL); __Pyx_GIVEREF(__pyx_n_u_FOL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_FOL); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->folsom); __Pyx_DECREF(((PyObject *)__pyx_v_self->folsom)); __pyx_v_self->folsom = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0237: self.oroville = Reservoir(self, 'oroville', 'ORO', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_oroville); __Pyx_GIVEREF(__pyx_n_u_oroville); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_oroville); __Pyx_INCREF(__pyx_n_u_ORO); __Pyx_GIVEREF(__pyx_n_u_ORO); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ORO); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->oroville); __Pyx_DECREF(((PyObject *)__pyx_v_self->oroville)); __pyx_v_self->oroville = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0238: self.yuba = Reservoir(self, 'yuba', 'YRS', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_yuba); __Pyx_GIVEREF(__pyx_n_u_yuba); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_yuba); __Pyx_INCREF(__pyx_n_u_YRS); __Pyx_GIVEREF(__pyx_n_u_YRS); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_YRS); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->yuba); __Pyx_DECREF(((PyObject *)__pyx_v_self->yuba)); __pyx_v_self->yuba = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
0239:
0240: #3 San Joaquin River Reservoirs (to meet Vernalis flow targets)
+0241: self.newmelones = Reservoir(self, 'newmelones', 'NML', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_newmelones); __Pyx_GIVEREF(__pyx_n_u_newmelones); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_newmelones); __Pyx_INCREF(__pyx_n_u_NML); __Pyx_GIVEREF(__pyx_n_u_NML); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_NML); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->newmelones); __Pyx_DECREF(((PyObject *)__pyx_v_self->newmelones)); __pyx_v_self->newmelones = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0242: self.donpedro = Reservoir(self, 'donpedro', 'DNP', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_donpedro); __Pyx_GIVEREF(__pyx_n_u_donpedro); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_donpedro); __Pyx_INCREF(__pyx_n_u_DNP); __Pyx_GIVEREF(__pyx_n_u_DNP); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_DNP); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->donpedro); __Pyx_DECREF(((PyObject *)__pyx_v_self->donpedro)); __pyx_v_self->donpedro = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0243: self.exchequer = Reservoir(self, 'exchequer', 'EXC', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_exchequer); __Pyx_GIVEREF(__pyx_n_u_exchequer); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_exchequer); __Pyx_INCREF(__pyx_n_u_EXC); __Pyx_GIVEREF(__pyx_n_u_EXC); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_EXC); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->exchequer); __Pyx_DECREF(((PyObject *)__pyx_v_self->exchequer)); __pyx_v_self->exchequer = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
0244:
+0245: self.reservoir_list = [self.shasta, self.oroville, self.yuba, self.folsom, self.newmelones, self.donpedro,
__pyx_t_2 = PyList_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->reservoir_list); __Pyx_DECREF(__pyx_v_self->reservoir_list); __pyx_v_self->reservoir_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0246: self.exchequer]
0247:
0248: #Millerton Reservoir (flows used to calculate San Joaquin River index, not in northern simulation)
+0249: self.millerton = Reservoir(self, 'millerton', 'MIL', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_millerton); __Pyx_GIVEREF(__pyx_n_u_millerton); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_millerton); __Pyx_INCREF(__pyx_n_u_MIL); __Pyx_GIVEREF(__pyx_n_u_MIL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_MIL); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->millerton); __Pyx_DECREF(((PyObject *)__pyx_v_self->millerton)); __pyx_v_self->millerton = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0250: reservoir_list = [self.shasta, self.oroville, self.folsom, self.yuba, self.newmelones, self.donpedro, self.exchequer, self.millerton]
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->exchequer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->millerton)); __pyx_v_reservoir_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0251: ##Regression flow & standard deviations read from file
0252: #### Find regression information for all 8 reservoirs
0253:
+0254: if self.model_mode == 'climate_ensemble':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 254, __pyx_L1_error) __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ goto __pyx_L3; }
0255: ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
0256: # df_res_process = pd.DataFrame()
0257: # df_res_annual = pd.DataFrame()
+0258: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 258, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0259: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0260: ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
0261: ###that is expected to come, regressed against the total flow already observed in that period
0262: ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0263: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 263, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0264: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0265: elif self.model_mode == 'validation':
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
0266: ## 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
0267: # df_res_process = pd.DataFrame()
0268: # df_res_annual = pd.DataFrame()
+0269: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 269, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0270: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0271: # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
0272: # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
0273: # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
0274: # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
0275: # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
0276: #
0277: # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
0278: # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
0279: # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
0280: # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
0281: # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
0282: # df_res_process.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_daily.csv')
0283: # df_res_annual.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_annual.csv')
0284:
0285: #flow_estimates = pd.read_csv('calfews_src/data/temp_output/input/no_res_preprocess_daily.csv', index_col=0, parse_dates=True)
0286: #std_estimates = pd.read_csv('calfews_src/data/temp_output/input/no_res_preprocess_annual.csv')
0287: #for x in reservoir_list:
0288: #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
0289: #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
0290: #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
0291: #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
0292: #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
0293: #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
0294: #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
0295: #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
0296: #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
0297: #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
0298: ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
0299: ###that is expected to come, regressed against the total flow already observed in that period
0300: ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
0301: #df_flow_shape_no = pd.DataFrame()
+0302: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 302, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0303: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0304: else:
0305: ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
0306: # df_res_process = pd.DataFrame()
0307: # df_res_annual = pd.DataFrame()
+0308: for reservoir_obj in reservoir_list:
/*else*/ {
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 308, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 308, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0309: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0310: # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
0311: # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
0312: # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
0313: # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
0314: # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
0315: #
0316: # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
0317: # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
0318: # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
0319: # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
0320: # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
0321: # df_res_process.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_daily.csv')
0322: # df_res_annual.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_annual.csv')
0323:
0324: #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_daily.csv')
0325: #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_annual.csv')
0326: #for x in reservoir_list:
0327: #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
0328: #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
0329: #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
0330: #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
0331: #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
0332: #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
0333: #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
0334: #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
0335: #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
0336: #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
0337:
0338: ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
0339: ###that is expected to come, regressed against the total flow already observed in that period
0340: ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
0341: #df_flow_shape_no = pd.DataFrame()
+0342: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 342, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:;
+0343: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0344: #########################################################################################
0345:
+0346: def initialize_delta_ops(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_11initialize_delta_ops(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_11initialize_delta_ops(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_delta_ops (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_10initialize_delta_ops(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_10initialize_delta_ops(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_gains_sac_short = NULL;
PyObject *__pyx_v_gains_sj_short = NULL;
PyObject *__pyx_v_depletions_short = NULL;
PyObject *__pyx_v_eastside_streams_short = NULL;
PyObject *__pyx_v_inflow_list = NULL;
PyObject *__pyx_v_expected_outflow_req = NULL;
PyObject *__pyx_v_expected_depletion = NULL;
PyObject *__pyx_8genexpr8__pyx_v__ = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_delta_ops", 0);
__Pyx_TraceCall("initialize_delta_ops", __pyx_f[0], 346, 0, __PYX_ERR(0, 346, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_delta_ops", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_gains_sac_short);
__Pyx_XDECREF(__pyx_v_gains_sj_short);
__Pyx_XDECREF(__pyx_v_depletions_short);
__Pyx_XDECREF(__pyx_v_eastside_streams_short);
__Pyx_XDECREF(__pyx_v_inflow_list);
__Pyx_XDECREF(__pyx_v_expected_outflow_req);
__Pyx_XDECREF(__pyx_v_expected_depletion);
__Pyx_XDECREF(__pyx_8genexpr8__pyx_v__);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0347: #########################################################################################
0348: ##initialization of the delta rules
0349: #########################################################################################
0350: cdef Reservoir reservoir_obj
0351:
+0352: self.delta = Delta(self, 'delta', 'DEL', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_delta); __Pyx_GIVEREF(__pyx_n_u_delta); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_delta); __Pyx_INCREF(__pyx_n_u_DEL); __Pyx_GIVEREF(__pyx_n_u_DEL); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DEL); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8delta_cy_Delta), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->delta); __Pyx_DECREF(((PyObject *)__pyx_v_self->delta)); __pyx_v_self->delta = ((struct __pyx_obj_11calfews_src_8delta_cy_Delta *)__pyx_t_2); __pyx_t_2 = 0;
0353:
+0354: if self.use_sensitivity:
__pyx_t_3 = (__pyx_v_self->use_sensitivity != 0);
if (__pyx_t_3) {
/* … */
}
+0355: self.delta.set_sensitivity_factors(self.sensitivity_factors['delta_outflow_multiplier']['realization'], self.sensitivity_factors['omr_flow']['realization'], self.sensitivity_factors['omr_probability']['realization'])
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 355, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_delta_outflow_multiplier); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_realization); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 355, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_omr_flow); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_realization); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 355, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_omr_probability); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_realization); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_7); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0356:
0357: ###Find expected reservoir releases to meet delta requirements - used in flow forecasting
0358: ###these use the flow 'gains' on each tributary stretch to find the expected extra releases required to meet env & delta mins
+0359: gains_sac_short = self.df_short[0].SAC_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 359, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SAC_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_gains_sac_short = __pyx_t_9;
__pyx_t_9 = 0;
+0360: gains_sj_short = self.df_short[0].SJ_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 360, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_SJ_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_gains_sj_short = __pyx_t_1;
__pyx_t_1 = 0;
+0361: depletions_short = self.df_short[0].delta_depletions * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 361, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_delta_depletions); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_depletions_short = __pyx_t_2;
__pyx_t_2 = 0;
+0362: eastside_streams_short = self.df_short[0].EAST_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 362, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EAST_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_eastside_streams_short = __pyx_t_9;
__pyx_t_9 = 0;
+0363: inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville, self.newmelones, self.donpedro, self.exchequer]
__pyx_t_9 = PyList_New(7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_9, 3, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyList_SET_ITEM(__pyx_t_9, 4, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyList_SET_ITEM(__pyx_t_9, 5, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyList_SET_ITEM(__pyx_t_9, 6, ((PyObject *)__pyx_v_self->exchequer)); __pyx_v_inflow_list = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
0364:
+0365: for reservoir_obj in inflow_list:
__pyx_t_9 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0; for (;;) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 365, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0366: reservoir_obj.downstream_short = [_ * cfs_tafd for _ in self.df_short[0]['%s_gains'% reservoir_obj.key].values]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 366, __pyx_L8_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyUnicode_Format(__pyx_kp_u_s_gains, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
__pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
__pyx_t_12 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L8_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
for (;;) {
if (likely(!__pyx_t_12)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 366, __pyx_L8_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 366, __pyx_L8_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
} else {
__pyx_t_7 = __pyx_t_12(__pyx_t_6);
if (unlikely(!__pyx_t_7)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 366, __pyx_L8_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_7);
}
__Pyx_XDECREF_SET(__pyx_8genexpr8__pyx_v__, __pyx_t_7);
__pyx_t_7 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_1 = PyNumber_Multiply(__pyx_8genexpr8__pyx_v__, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 366, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_8genexpr8__pyx_v__); __pyx_8genexpr8__pyx_v__ = 0;
goto __pyx_L11_exit_scope;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_8genexpr8__pyx_v__); __pyx_8genexpr8__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L11_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_reservoir_obj->downstream_short);
__Pyx_DECREF(__pyx_v_reservoir_obj->downstream_short);
__pyx_v_reservoir_obj->downstream_short = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
0367:
0368: ##in addition to output variables, this generates:
0369: #self.max_tax_free (5x2x365) - using delta outflow min, calculate how much pumping can occur without paying any additional I/E 'tax' (b/c some inflow is already used for delta outflow requirements)
+0370: expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self,self.shasta.downstream_short,self.oroville.downstream_short,self.yuba.downstream_short,self.folsom.downstream_short, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases, gains_sac_short, gains_sj_short, depletions_short, eastside_streams_short)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_calc_expected_delta_outflow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[14] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_self->shasta->downstream_short, __pyx_v_self->oroville->downstream_short, __pyx_v_self->yuba->downstream_short, __pyx_v_self->folsom->downstream_short, __pyx_v_self->shasta->temp_releases, __pyx_v_self->oroville->temp_releases, __pyx_v_self->yuba->temp_releases, __pyx_v_self->folsom->temp_releases, __pyx_v_gains_sac_short, __pyx_v_gains_sj_short, __pyx_v_depletions_short, __pyx_v_eastside_streams_short}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 13+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[14] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_self->shasta->downstream_short, __pyx_v_self->oroville->downstream_short, __pyx_v_self->yuba->downstream_short, __pyx_v_self->folsom->downstream_short, __pyx_v_self->shasta->temp_releases, __pyx_v_self->oroville->temp_releases, __pyx_v_self->yuba->temp_releases, __pyx_v_self->folsom->temp_releases, __pyx_v_gains_sac_short, __pyx_v_gains_sj_short, __pyx_v_depletions_short, __pyx_v_eastside_streams_short}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 13+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_1 = PyTuple_New(13+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_self->shasta->downstream_short); __Pyx_GIVEREF(__pyx_v_self->shasta->downstream_short); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_self->shasta->downstream_short); __Pyx_INCREF(__pyx_v_self->oroville->downstream_short); __Pyx_GIVEREF(__pyx_v_self->oroville->downstream_short); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_8, __pyx_v_self->oroville->downstream_short); __Pyx_INCREF(__pyx_v_self->yuba->downstream_short); __Pyx_GIVEREF(__pyx_v_self->yuba->downstream_short); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_8, __pyx_v_self->yuba->downstream_short); __Pyx_INCREF(__pyx_v_self->folsom->downstream_short); __Pyx_GIVEREF(__pyx_v_self->folsom->downstream_short); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_8, __pyx_v_self->folsom->downstream_short); __Pyx_INCREF(__pyx_v_self->shasta->temp_releases); __Pyx_GIVEREF(__pyx_v_self->shasta->temp_releases); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_8, __pyx_v_self->shasta->temp_releases); __Pyx_INCREF(__pyx_v_self->oroville->temp_releases); __Pyx_GIVEREF(__pyx_v_self->oroville->temp_releases); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_8, __pyx_v_self->oroville->temp_releases); __Pyx_INCREF(__pyx_v_self->yuba->temp_releases); __Pyx_GIVEREF(__pyx_v_self->yuba->temp_releases); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_8, __pyx_v_self->yuba->temp_releases); __Pyx_INCREF(__pyx_v_self->folsom->temp_releases); __Pyx_GIVEREF(__pyx_v_self->folsom->temp_releases); PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_8, __pyx_v_self->folsom->temp_releases); __Pyx_INCREF(__pyx_v_gains_sac_short); __Pyx_GIVEREF(__pyx_v_gains_sac_short); PyTuple_SET_ITEM(__pyx_t_1, 9+__pyx_t_8, __pyx_v_gains_sac_short); __Pyx_INCREF(__pyx_v_gains_sj_short); __Pyx_GIVEREF(__pyx_v_gains_sj_short); PyTuple_SET_ITEM(__pyx_t_1, 10+__pyx_t_8, __pyx_v_gains_sj_short); __Pyx_INCREF(__pyx_v_depletions_short); __Pyx_GIVEREF(__pyx_v_depletions_short); PyTuple_SET_ITEM(__pyx_t_1, 11+__pyx_t_8, __pyx_v_depletions_short); __Pyx_INCREF(__pyx_v_eastside_streams_short); __Pyx_GIVEREF(__pyx_v_eastside_streams_short); PyTuple_SET_ITEM(__pyx_t_1, 12+__pyx_t_8, __pyx_v_eastside_streams_short); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 370, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_6)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_13(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_6), 2) < 0) __PYX_ERR(0, 370, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 370, __pyx_L1_error) __pyx_L13_unpacking_done:; } __pyx_v_expected_outflow_req = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_expected_depletion = __pyx_t_1; __pyx_t_1 = 0;
0371: #these requirements are then passed back to the reservoirs so that they know how much water to hold on to
0372: #Calculated the expected releases for environmental flows & delta outflow requirements
0373: #pre-processed to help with forecasts of available storage for export
0374: ##Yuba has an extra flow catagorization for environmental minimum flows,
0375: ## 'extra critical' - use critical year delta outflow requirements in that year type
+0376: expected_outflow_req = self.delta.min_outflow
__pyx_t_9 = __pyx_v_self->delta->min_outflow; __Pyx_INCREF(__pyx_t_9); __Pyx_DECREF_SET(__pyx_v_expected_outflow_req, __pyx_t_9); __pyx_t_9 = 0;
+0377: expected_outflow_req['EC'] = expected_outflow_req['C']
__pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_outflow_req, __pyx_n_u_C); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(PyObject_SetItem(__pyx_v_expected_outflow_req, __pyx_n_u_EC, __pyx_t_9) < 0)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
0378: #generates:
0379: #x.cum_min_release (5 x 365) - daily values of remaining enviromental releases through the end of july, in each wyt
0380: #x.aug_sept_min_release (5 x 365) - daily values of remaining enviromental releases during the aug-sept period, in each wyt
0381: #x.oct_nov_min_release (5 x 365) - daily values of remaining enviromental releases during the oct-nov period, in each wyt
+0382: for reservoir_obj in inflow_list:
__pyx_t_9 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0; for (;;) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 382, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0383: reservoir_obj.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_req, __pyx_v_expected_depletion, __pyx_int_0}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_req, __pyx_v_expected_depletion, __pyx_int_0}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_expected_outflow_req); __Pyx_GIVEREF(__pyx_v_expected_outflow_req); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_expected_outflow_req); __Pyx_INCREF(__pyx_v_expected_depletion); __Pyx_GIVEREF(__pyx_v_expected_depletion); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_expected_depletion); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_int_0); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0384:
+0385: self.delta.create_flow_shapes_omr(self)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_create_flow_shapes_omr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
0386:
+0387: def initialize_southern_res(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_13initialize_southern_res(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_13initialize_southern_res(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_southern_res (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_12initialize_southern_res(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_12initialize_southern_res(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_reservoir_list = NULL;
PyObject *__pyx_v_expected_outflow_releases = NULL;
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_v_inflow_list = NULL;
long __pyx_v_sjrr_toggle_value;
PyObject *__pyx_8genexpr9__pyx_v__ = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_southern_res", 0);
__Pyx_TraceCall("initialize_southern_res", __pyx_f[0], 387, 0, __PYX_ERR(0, 387, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_southern_res", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_reservoir_list);
__Pyx_XDECREF(__pyx_v_expected_outflow_releases);
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XDECREF(__pyx_v_inflow_list);
__Pyx_XDECREF(__pyx_8genexpr9__pyx_v__);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0388: ############################################################################
0389: ###Reservoir Initialization
0390: ############################################################################
0391: cdef Reservoir reservoir_obj
0392:
+0393: self.millerton = Reservoir(self, 'millerton', 'MIL', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_millerton); __Pyx_GIVEREF(__pyx_n_u_millerton); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_millerton); __Pyx_INCREF(__pyx_n_u_MIL); __Pyx_GIVEREF(__pyx_n_u_MIL); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_MIL); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->millerton); __Pyx_DECREF(((PyObject *)__pyx_v_self->millerton)); __pyx_v_self->millerton = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0394: self.pineflat = Reservoir(self, 'pineflat', 'PFT', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_pineflat); __Pyx_GIVEREF(__pyx_n_u_pineflat); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_pineflat); __Pyx_INCREF(__pyx_n_u_PFT); __Pyx_GIVEREF(__pyx_n_u_PFT); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PFT); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->pineflat); __Pyx_DECREF(((PyObject *)__pyx_v_self->pineflat)); __pyx_v_self->pineflat = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0395: self.kaweah = Reservoir(self, 'kaweah', 'KWH', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kaweah); __Pyx_GIVEREF(__pyx_n_u_kaweah); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kaweah); __Pyx_INCREF(__pyx_n_u_KWH); __Pyx_GIVEREF(__pyx_n_u_KWH); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KWH); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kaweah); __Pyx_DECREF(((PyObject *)__pyx_v_self->kaweah)); __pyx_v_self->kaweah = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0396: self.success = Reservoir(self, 'success', 'SUC', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_success); __Pyx_GIVEREF(__pyx_n_u_success); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_success); __Pyx_INCREF(__pyx_n_u_SUC); __Pyx_GIVEREF(__pyx_n_u_SUC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SUC); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->success); __Pyx_DECREF(((PyObject *)__pyx_v_self->success)); __pyx_v_self->success = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0397: self.isabella = Reservoir(self, 'isabella', 'ISB', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_isabella); __Pyx_GIVEREF(__pyx_n_u_isabella); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_isabella); __Pyx_INCREF(__pyx_n_u_ISB); __Pyx_GIVEREF(__pyx_n_u_ISB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ISB); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->isabella); __Pyx_DECREF(((PyObject *)__pyx_v_self->isabella)); __pyx_v_self->isabella = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
0398: ###San Luis is initialized as a Reservoir, but
0399: ###has none of the watershed data that goes along with the other reservoirs
+0400: self.sanluis = Reservoir(self, 'sanluis', 'SNL', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_sanluis); __Pyx_GIVEREF(__pyx_n_u_sanluis); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sanluis); __Pyx_INCREF(__pyx_n_u_SNL); __Pyx_GIVEREF(__pyx_n_u_SNL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SNL); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->sanluis); __Pyx_DECREF(((PyObject *)__pyx_v_self->sanluis)); __pyx_v_self->sanluis = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0401: self.sanluisstate = Reservoir(self, 'sanluisstate', 'SLS', self.model_mode)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_sanluisstate); __Pyx_GIVEREF(__pyx_n_u_sanluisstate); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_sanluisstate); __Pyx_INCREF(__pyx_n_u_SLS); __Pyx_GIVEREF(__pyx_n_u_SLS); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SLS); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_self->model_mode); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->sanluisstate); __Pyx_DECREF(((PyObject *)__pyx_v_self->sanluisstate)); __pyx_v_self->sanluisstate = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2); __pyx_t_2 = 0;
+0402: self.sanluisfederal = Reservoir(self, 'sanluisfederal', 'SLF', self.model_mode)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_sanluisfederal); __Pyx_GIVEREF(__pyx_n_u_sanluisfederal); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sanluisfederal); __Pyx_INCREF(__pyx_n_u_SLF); __Pyx_GIVEREF(__pyx_n_u_SLF); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SLF); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->model_mode); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->sanluisfederal); __Pyx_DECREF(((PyObject *)__pyx_v_self->sanluisfederal)); __pyx_v_self->sanluisfederal = ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1); __pyx_t_1 = 0;
+0403: self.reservoir_list = [self.sanluisstate, self.sanluisfederal, self.millerton, self.isabella, self.success, self.kaweah, self.pineflat]
__pyx_t_1 = PyList_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluisstate)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluisstate)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->sanluisstate)); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluisfederal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluisfederal)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->sanluisfederal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->reservoir_list); __Pyx_DECREF(__pyx_v_self->reservoir_list); __pyx_v_self->reservoir_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0404:
+0405: if self.model_mode == 'climate_ensemble':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 405, __pyx_L1_error) __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ goto __pyx_L3; }
0406: ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
+0407: for reservoir_obj in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->millerton)); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 407, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0408: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0409: for reservoir_obj in [self.pineflat, self.millerton, self.isabella, self.success, self.kaweah]:
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->kaweah)); __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 409, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0410: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0411: elif self.model_mode == 'validation': ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 411, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
0412: # df_res_process = pd.DataFrame()
0413: # df_res_annual = pd.DataFrame()
+0414: for reservoir_obj in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->millerton)); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 414, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0415: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0416: # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
0417: # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
0418: # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
0419: # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
0420: # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
0421: #
0422: # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
0423: # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
0424: # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
0425: # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
0426: # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
0427: # df_res_process.to_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv')
0428: # df_res_annual.to_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
0429:
0430: ##Regression flow & standard deviations read from file (see end of function for code to generate files)
0431: #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv', index_col=0, parse_dates=True)
0432: #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
0433: #### Find regression information for all 8 reservoirs
0434: ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
0435: #for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
0436: #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]#FNF, Oct-Mar, Linear coefficients
0437: #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]#FNF, Apr-Jul, Linear coefficients
0438: #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]#INF, Oct-Mar, Linear coefficients
0439: #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]#INF, Apr-Jul, Linear coefficients
0440: #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]#INF, Aug-Sept, Linear coefficients
0441: #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]#FNF, Oct-Mar, STD
0442: #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]#FNF, Apr-Jul, STD
0443: #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]#INF, Oct-Mar, STD
0444: #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]#INF, Apr-Jul, STD
0445: #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]#INF, Aug-Sept, STD
0446:
0447: ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
0448: ###that is expected to come, regressed against the total flow already observed in that period
0449: ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0450: for reservoir_obj in [self.pineflat, self.millerton, self.isabella, self.success, self.kaweah]:
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->kaweah)); __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 450, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0451: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0452: else:
0453: ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
+0454: reservoir_list = [self.millerton, self.isabella, self.pineflat, self.kaweah, self.success]
/*else*/ {
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)__pyx_v_self->millerton));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton));
PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->millerton));
__Pyx_INCREF(((PyObject *)__pyx_v_self->isabella));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella));
PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->isabella));
__Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat));
PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->pineflat));
__Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah));
PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->kaweah));
__Pyx_INCREF(((PyObject *)__pyx_v_self->success));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->success));
PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->success));
__pyx_v_reservoir_list = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
0455: # df_res_process = pd.DataFrame()
0456: # df_res_annual = pd.DataFrame()
+0457: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 457, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0458: reservoir_obj.find_release_func(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0459: # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
0460: # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
0461: # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
0462: # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
0463: # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
0464: #
0465: # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
0466: # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
0467: # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
0468: # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
0469: # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
0470: # df_res_process.to_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_daily.csv')
0471: # df_res_annual.to_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_annual.csv')
0472:
0473: #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_daily.csv')
0474: #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_annual.csv')
0475: #for x in reservoir_list:
0476: #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
0477: #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
0478: #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
0479: #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
0480: #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
0481: #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
0482: #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
0483: #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
0484: #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
0485: #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
0486:
0487: ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
0488: ###that is expected to come, regressed against the total flow already observed in that period
0489: ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0490: for reservoir_obj in reservoir_list:
__pyx_t_1 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 490, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:;
+0491: reservoir_obj.create_flow_shapes(self)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0492: #########################################################################################
0493:
0494: #Tulare Basin Reservoirs do not need to release to the delta, so they only use their own
0495: #environmental flow requirements when calculating expected environmental releases
0496: #arguements passed into the function here are equal to zero
+0497: expected_outflow_releases = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0498: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 498, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__3 = PyTuple_Pack(5, __pyx_n_u_W, __pyx_n_u_AN, __pyx_n_u_BN, __pyx_n_u_D, __pyx_n_u_C); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3);
+0499: expected_outflow_releases[wyt] = np.zeros(366)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_366); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_2) < 0)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0500: inflow_list = [self.millerton, self.pineflat, self.kaweah, self.success, self.isabella]
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->isabella)); __pyx_v_inflow_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0501: for reservoir_obj in inflow_list:
__pyx_t_1 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 501, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 501, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0502: reservoir_obj.downstream_short = [_ * cfs_tafd for _ in self.df_short[0]['%s_gains'% reservoir_obj.key].values]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 502, __pyx_L22_error)
}
__pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyUnicode_Format(__pyx_kp_u_s_gains, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
__pyx_t_8 = __pyx_t_6; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 502, __pyx_L22_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_8))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 502, __pyx_L22_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 502, __pyx_L22_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
} else {
__pyx_t_6 = __pyx_t_10(__pyx_t_8);
if (unlikely(!__pyx_t_6)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 502, __pyx_L22_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_6);
}
__Pyx_XDECREF_SET(__pyx_8genexpr9__pyx_v__, __pyx_t_6);
__pyx_t_6 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyNumber_Multiply(__pyx_8genexpr9__pyx_v__, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 502, __pyx_L22_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_8genexpr9__pyx_v__); __pyx_8genexpr9__pyx_v__ = 0;
goto __pyx_L25_exit_scope;
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_8genexpr9__pyx_v__); __pyx_8genexpr9__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L25_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_reservoir_obj->downstream_short);
__Pyx_DECREF(__pyx_v_reservoir_obj->downstream_short);
__pyx_v_reservoir_obj->downstream_short = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
0503:
+0504: for reservoir_obj in inflow_list:
__pyx_t_1 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 504, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 504, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0505: #generates:
0506: #x.cum_min_release (5 x 365) - daily values of remaining enviromental releases through the end of july, in each wyt
0507: #x.aug_sept_min_release (5 x 365) - daily values of remaining enviromental releases during the aug-sept period, in each wyt
0508: #x.oct_nov_min_release (5 x 365) - daily values of remaining enviromental releases during the oct-nov period, in each wyt
+0509: if reservoir_obj.key == "MIL":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir_obj->key, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 509, __pyx_L1_error) __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ goto __pyx_L28; }
+0510: if self.model_mode == 'validation':
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 510, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L29; }
+0511: sjrr_toggle_value = 0
__pyx_v_sjrr_toggle_value = 0;
0512: else:
+0513: sjrr_toggle_value = 1
/*else*/ {
__pyx_v_sjrr_toggle_value = 1;
}
__pyx_L29:;
+0514: reservoir_obj.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), sjrr_toggle_value)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_6, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_int_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_long(__pyx_v_sjrr_toggle_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_7, __pyx_t_11}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_7, __pyx_t_11}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_13 = PyTuple_New(4+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_v_expected_outflow_releases); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_12, __pyx_t_11); __pyx_t_7 = 0; __pyx_t_11 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0515: else:
+0516: reservoir_obj.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 0)
/*else*/ {
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
}
}
__pyx_t_13 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_11, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12);
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = NULL;
__pyx_t_12 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
__pyx_t_12 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[5] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_13, __pyx_int_0};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[5] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_13, __pyx_int_0};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
{
__pyx_t_11 = PyTuple_New(4+__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (__pyx_t_7) {
__Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_12, ((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_expected_outflow_releases);
__Pyx_GIVEREF(__pyx_v_expected_outflow_releases);
PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_12, __pyx_v_expected_outflow_releases);
__Pyx_GIVEREF(__pyx_t_13);
PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_12, __pyx_t_13);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_12, __pyx_int_0);
__pyx_t_13 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L28:;
0517:
0518: ##Code to calculate snow/flow regressions and save to file
0519: ############################################################################
+0520: self.pineflat.find_release_func(self)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pineflat), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0521: self.kaweah.find_release_func(self)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->kaweah), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0522: self.success.find_release_func(self)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->success), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0523: self.isabella.find_release_func(self)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->isabella), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0524: self.millerton.find_release_func(self)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0525: # df_res_process = pd.DataFrame()
0526: # df_res_annual = pd.DataFrame()
0527: # for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
0528: # df_res_process['%s_rainfnf' % x.key] = pd.Series(x.rainflood_fnf, index = self.index)
0529: # df_res_process['%s_snowfnf' % x.key] = pd.Series(x.snowflood_fnf, index = self.index)
0530: # df_res_process['%s_raininf' % x.key] = pd.Series(x.rainflood_inf, index = self.index)
0531: # df_res_process['%s_snowinf' % x.key] = pd.Series(x.snowflood_inf, index = self.index)
0532: # df_res_process['%s_baseinf' % x.key] = pd.Series(x.baseline_inf, index = self.index)
0533: # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
0534: # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
0535: # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
0536: # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
0537: # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
0538: # df_res_process.to_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv')
0539: # df_res_annual.to_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
0540:
0541:
+0542: def initialize_water_districts(self, scenario = 'baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_15initialize_water_districts(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_15initialize_water_districts(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_scenario = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_water_districts (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scenario,0};
PyObject* values[1] = {0};
values[0] = ((PyObject *)__pyx_n_u_baseline);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
if (value) { values[0] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_water_districts") < 0)) __PYX_ERR(0, 542, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_scenario = values[0];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("initialize_water_districts", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 542, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_water_districts", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_14initialize_water_districts(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_scenario);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_14initialize_water_districts(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_scenario) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_water_districts", 0);
__Pyx_TraceCall("initialize_water_districts", __pyx_f[0], 542, 0, __PYX_ERR(0, 542, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_water_districts", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0543: ############################################################################
0544: ###District Initialization
0545: ############################################################################
0546: cdef District district_obj
0547: cdef Private private_obj
0548:
0549: ##Kern County Water Agency Member Units
+0550: self.berrenda = District(self, 'berrenda', 'BDM')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_berrenda); __Pyx_GIVEREF(__pyx_n_u_berrenda); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_berrenda); __Pyx_INCREF(__pyx_n_u_BDM); __Pyx_GIVEREF(__pyx_n_u_BDM); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_BDM); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->berrenda); __Pyx_DECREF(((PyObject *)__pyx_v_self->berrenda)); __pyx_v_self->berrenda = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0551: self.belridge = District(self, 'belridge', 'BLR')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_belridge); __Pyx_GIVEREF(__pyx_n_u_belridge); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_belridge); __Pyx_INCREF(__pyx_n_u_BLR); __Pyx_GIVEREF(__pyx_n_u_BLR); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_BLR); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->belridge); __Pyx_DECREF(((PyObject *)__pyx_v_self->belridge)); __pyx_v_self->belridge = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0552: self.buenavista = District(self, 'buenavista', 'BVA')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_buenavista); __Pyx_GIVEREF(__pyx_n_u_buenavista); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_buenavista); __Pyx_INCREF(__pyx_n_u_BVA); __Pyx_GIVEREF(__pyx_n_u_BVA); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_BVA); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->buenavista); __Pyx_DECREF(((PyObject *)__pyx_v_self->buenavista)); __pyx_v_self->buenavista = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0553: self.cawelo = District(self, 'cawelo', 'CWO')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_cawelo); __Pyx_GIVEREF(__pyx_n_u_cawelo); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_cawelo); __Pyx_INCREF(__pyx_n_u_CWO); __Pyx_GIVEREF(__pyx_n_u_CWO); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CWO); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->cawelo); __Pyx_DECREF(((PyObject *)__pyx_v_self->cawelo)); __pyx_v_self->cawelo = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0554: self.henrymiller = District(self, 'henrymiller', 'HML')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_henrymiller); __Pyx_GIVEREF(__pyx_n_u_henrymiller); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_henrymiller); __Pyx_INCREF(__pyx_n_u_HML); __Pyx_GIVEREF(__pyx_n_u_HML); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_HML); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->henrymiller); __Pyx_DECREF(((PyObject *)__pyx_v_self->henrymiller)); __pyx_v_self->henrymiller = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0555: self.ID4 = District(self, 'ID4', 'ID4')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_ID4); __Pyx_GIVEREF(__pyx_n_u_ID4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_ID4); __Pyx_INCREF(__pyx_n_u_ID4); __Pyx_GIVEREF(__pyx_n_u_ID4); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ID4); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->ID4); __Pyx_DECREF(((PyObject *)__pyx_v_self->ID4)); __pyx_v_self->ID4 = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0556: self.kerndelta = District(self, 'kerndelta', 'KND')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kerndelta); __Pyx_GIVEREF(__pyx_n_u_kerndelta); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kerndelta); __Pyx_INCREF(__pyx_n_u_KND); __Pyx_GIVEREF(__pyx_n_u_KND); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KND); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kerndelta); __Pyx_DECREF(((PyObject *)__pyx_v_self->kerndelta)); __pyx_v_self->kerndelta = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0557: self.losthills = District(self, 'losthills', 'LHL')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_losthills); __Pyx_GIVEREF(__pyx_n_u_losthills); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_losthills); __Pyx_INCREF(__pyx_n_u_LHL); __Pyx_GIVEREF(__pyx_n_u_LHL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LHL); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->losthills); __Pyx_DECREF(((PyObject *)__pyx_v_self->losthills)); __pyx_v_self->losthills = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0558: self.rosedale = District(self, 'rosedale', 'RRB')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_rosedale); __Pyx_GIVEREF(__pyx_n_u_rosedale); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_rosedale); __Pyx_INCREF(__pyx_n_u_RRB); __Pyx_GIVEREF(__pyx_n_u_RRB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_RRB); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->rosedale); __Pyx_DECREF(((PyObject *)__pyx_v_self->rosedale)); __pyx_v_self->rosedale = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0559: self.semitropic = District(self, 'semitropic', 'SMI')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_semitropic); __Pyx_GIVEREF(__pyx_n_u_semitropic); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_semitropic); __Pyx_INCREF(__pyx_n_u_SMI); __Pyx_GIVEREF(__pyx_n_u_SMI); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SMI); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->semitropic); __Pyx_DECREF(((PyObject *)__pyx_v_self->semitropic)); __pyx_v_self->semitropic = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0560: self.tehachapi = District(self, 'tehachapi', 'THC')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_tehachapi); __Pyx_GIVEREF(__pyx_n_u_tehachapi); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_tehachapi); __Pyx_INCREF(__pyx_n_u_THC); __Pyx_GIVEREF(__pyx_n_u_THC); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_THC); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->tehachapi); __Pyx_DECREF(((PyObject *)__pyx_v_self->tehachapi)); __pyx_v_self->tehachapi = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0561: self.tejon = District(self, 'tejon', 'TJC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_tejon); __Pyx_GIVEREF(__pyx_n_u_tejon); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tejon); __Pyx_INCREF(__pyx_n_u_TJC); __Pyx_GIVEREF(__pyx_n_u_TJC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TJC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->tejon); __Pyx_DECREF(((PyObject *)__pyx_v_self->tejon)); __pyx_v_self->tejon = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0562: self.westkern = District(self, 'westkern', 'WKN')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_westkern); __Pyx_GIVEREF(__pyx_n_u_westkern); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_westkern); __Pyx_INCREF(__pyx_n_u_WKN); __Pyx_GIVEREF(__pyx_n_u_WKN); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WKN); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->westkern); __Pyx_DECREF(((PyObject *)__pyx_v_self->westkern)); __pyx_v_self->westkern = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0563: self.wheeler = District(self, 'wheeler', 'WRM')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_wheeler); __Pyx_GIVEREF(__pyx_n_u_wheeler); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_wheeler); __Pyx_INCREF(__pyx_n_u_WRM); __Pyx_GIVEREF(__pyx_n_u_WRM); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WRM); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->wheeler); __Pyx_DECREF(((PyObject *)__pyx_v_self->wheeler)); __pyx_v_self->wheeler = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0564: self.kcwa = District(self, 'kcwa', 'KCWA')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kcwa); __Pyx_GIVEREF(__pyx_n_u_kcwa); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kcwa); __Pyx_INCREF(__pyx_n_u_KCWA); __Pyx_GIVEREF(__pyx_n_u_KCWA); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KCWA); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kcwa); __Pyx_DECREF(((PyObject *)__pyx_v_self->kcwa)); __pyx_v_self->kcwa = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
0565: ##Other Kern County
+0566: self.bakersfield = District(self, 'bakersfield', 'COB')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_bakersfield); __Pyx_GIVEREF(__pyx_n_u_bakersfield); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_bakersfield); __Pyx_INCREF(__pyx_n_u_COB); __Pyx_GIVEREF(__pyx_n_u_COB); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_COB); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->bakersfield); __Pyx_DECREF(((PyObject *)__pyx_v_self->bakersfield)); __pyx_v_self->bakersfield = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0567: self.northkern = District(self, 'northkern', 'NKN')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_northkern); __Pyx_GIVEREF(__pyx_n_u_northkern); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_northkern); __Pyx_INCREF(__pyx_n_u_NKN); __Pyx_GIVEREF(__pyx_n_u_NKN); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_NKN); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->northkern); __Pyx_DECREF(((PyObject *)__pyx_v_self->northkern)); __pyx_v_self->northkern = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
0568: ##Friant Kern Contractors
+0569: self.arvin = District(self, 'arvin', 'ARV')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_arvin); __Pyx_GIVEREF(__pyx_n_u_arvin); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_arvin); __Pyx_INCREF(__pyx_n_u_ARV); __Pyx_GIVEREF(__pyx_n_u_ARV); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ARV); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->arvin); __Pyx_DECREF(((PyObject *)__pyx_v_self->arvin)); __pyx_v_self->arvin = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0570: self.pixley = District(self, 'pixley', 'PIX')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_pixley); __Pyx_GIVEREF(__pyx_n_u_pixley); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_pixley); __Pyx_INCREF(__pyx_n_u_PIX); __Pyx_GIVEREF(__pyx_n_u_PIX); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_PIX); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->pixley); __Pyx_DECREF(((PyObject *)__pyx_v_self->pixley)); __pyx_v_self->pixley = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0571: self.delano = District(self, 'delano', 'DLE')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_delano); __Pyx_GIVEREF(__pyx_n_u_delano); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_delano); __Pyx_INCREF(__pyx_n_u_DLE); __Pyx_GIVEREF(__pyx_n_u_DLE); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_DLE); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->delano); __Pyx_DECREF(((PyObject *)__pyx_v_self->delano)); __pyx_v_self->delano = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0572: self.exeter = District(self, 'exeter', 'EXE')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_exeter); __Pyx_GIVEREF(__pyx_n_u_exeter); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_exeter); __Pyx_INCREF(__pyx_n_u_EXE); __Pyx_GIVEREF(__pyx_n_u_EXE); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_EXE); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->exeter); __Pyx_DECREF(((PyObject *)__pyx_v_self->exeter)); __pyx_v_self->exeter = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0573: self.kerntulare = District(self, 'kerntulare', 'KRT')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kerntulare); __Pyx_GIVEREF(__pyx_n_u_kerntulare); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kerntulare); __Pyx_INCREF(__pyx_n_u_KRT); __Pyx_GIVEREF(__pyx_n_u_KRT); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KRT); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->kerntulare); __Pyx_DECREF(((PyObject *)__pyx_v_self->kerntulare)); __pyx_v_self->kerntulare = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0574: self.lindmore = District(self, 'lindmore', 'LND')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_lindmore); __Pyx_GIVEREF(__pyx_n_u_lindmore); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_lindmore); __Pyx_INCREF(__pyx_n_u_LND); __Pyx_GIVEREF(__pyx_n_u_LND); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_LND); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->lindmore); __Pyx_DECREF(((PyObject *)__pyx_v_self->lindmore)); __pyx_v_self->lindmore = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0575: self.lindsay = District(self, 'lindsay', 'LDS')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_lindsay); __Pyx_GIVEREF(__pyx_n_u_lindsay); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lindsay); __Pyx_INCREF(__pyx_n_u_LDS); __Pyx_GIVEREF(__pyx_n_u_LDS); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LDS); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->lindsay); __Pyx_DECREF(((PyObject *)__pyx_v_self->lindsay)); __pyx_v_self->lindsay = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0576: if (scenario == 'baseline'):
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 576, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0577: self.lowertule = District(self, 'lowertule', 'LWT')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_lowertule); __Pyx_GIVEREF(__pyx_n_u_lowertule); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_lowertule); __Pyx_INCREF(__pyx_n_u_LWT); __Pyx_GIVEREF(__pyx_n_u_LWT); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_LWT); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->lowertule); __Pyx_DECREF(((PyObject *)__pyx_v_self->lowertule)); __pyx_v_self->lowertule = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0578: elif (scenario['LWT'] == 'baseline'):
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_LWT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0579: self.lowertule = District(self, 'lowertule', 'LWT')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_lowertule); __Pyx_GIVEREF(__pyx_n_u_lowertule); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lowertule); __Pyx_INCREF(__pyx_n_u_LWT); __Pyx_GIVEREF(__pyx_n_u_LWT); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LWT); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->lowertule); __Pyx_DECREF(((PyObject *)__pyx_v_self->lowertule)); __pyx_v_self->lowertule = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
0580: else:
+0581: self.lowertule = District(self, 'lowertule', 'LWT', scenario['LWT'])
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_LWT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_n_u_lowertule);
__Pyx_GIVEREF(__pyx_n_u_lowertule);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lowertule);
__Pyx_INCREF(__pyx_n_u_LWT);
__Pyx_GIVEREF(__pyx_n_u_LWT);
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LWT);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->lowertule);
__Pyx_DECREF(((PyObject *)__pyx_v_self->lowertule));
__pyx_v_self->lowertule = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L3:;
+0582: self.porterville = District(self, 'porterville', 'PRT')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_porterville); __Pyx_GIVEREF(__pyx_n_u_porterville); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_porterville); __Pyx_INCREF(__pyx_n_u_PRT); __Pyx_GIVEREF(__pyx_n_u_PRT); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_PRT); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->porterville); __Pyx_DECREF(((PyObject *)__pyx_v_self->porterville)); __pyx_v_self->porterville = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0583: self.saucelito = District(self, 'saucelito', 'SAU')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_saucelito); __Pyx_GIVEREF(__pyx_n_u_saucelito); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_saucelito); __Pyx_INCREF(__pyx_n_u_SAU); __Pyx_GIVEREF(__pyx_n_u_SAU); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SAU); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->saucelito); __Pyx_DECREF(((PyObject *)__pyx_v_self->saucelito)); __pyx_v_self->saucelito = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0584: self.shaffer = District(self, 'shaffer', 'SFW')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_shaffer); __Pyx_GIVEREF(__pyx_n_u_shaffer); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_shaffer); __Pyx_INCREF(__pyx_n_u_SFW); __Pyx_GIVEREF(__pyx_n_u_SFW); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SFW); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->shaffer); __Pyx_DECREF(((PyObject *)__pyx_v_self->shaffer)); __pyx_v_self->shaffer = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0585: self.sosanjoaquin = District(self, 'sosanjoaquin', 'SSJ')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_sosanjoaquin); __Pyx_GIVEREF(__pyx_n_u_sosanjoaquin); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sosanjoaquin); __Pyx_INCREF(__pyx_n_u_SSJ); __Pyx_GIVEREF(__pyx_n_u_SSJ); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SSJ); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->sosanjoaquin); __Pyx_DECREF(((PyObject *)__pyx_v_self->sosanjoaquin)); __pyx_v_self->sosanjoaquin = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0586: self.teapot = District(self, 'teapot', 'TPD')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_teapot); __Pyx_GIVEREF(__pyx_n_u_teapot); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_teapot); __Pyx_INCREF(__pyx_n_u_TPD); __Pyx_GIVEREF(__pyx_n_u_TPD); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_TPD); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->teapot); __Pyx_DECREF(((PyObject *)__pyx_v_self->teapot)); __pyx_v_self->teapot = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0587: self.terra = District(self, 'terra', 'TBA')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_terra); __Pyx_GIVEREF(__pyx_n_u_terra); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_terra); __Pyx_INCREF(__pyx_n_u_TBA); __Pyx_GIVEREF(__pyx_n_u_TBA); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TBA); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->terra); __Pyx_DECREF(((PyObject *)__pyx_v_self->terra)); __pyx_v_self->terra = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0588: self.tulare = District(self, 'tulare', 'TUL')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_tulare); __Pyx_GIVEREF(__pyx_n_u_tulare); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_tulare); __Pyx_INCREF(__pyx_n_u_TUL); __Pyx_GIVEREF(__pyx_n_u_TUL); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_TUL); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->tulare); __Pyx_DECREF(((PyObject *)__pyx_v_self->tulare)); __pyx_v_self->tulare = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0589: self.fresno = District(self, 'fresno', 'COF')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_fresno); __Pyx_GIVEREF(__pyx_n_u_fresno); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_fresno); __Pyx_INCREF(__pyx_n_u_COF); __Pyx_GIVEREF(__pyx_n_u_COF); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_COF); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->fresno); __Pyx_DECREF(((PyObject *)__pyx_v_self->fresno)); __pyx_v_self->fresno = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0590: self.fresnoid = District(self, 'fresnoid', 'FRS')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_fresnoid); __Pyx_GIVEREF(__pyx_n_u_fresnoid); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_fresnoid); __Pyx_INCREF(__pyx_n_u_FRS); __Pyx_GIVEREF(__pyx_n_u_FRS); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_FRS); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->fresnoid); __Pyx_DECREF(((PyObject *)__pyx_v_self->fresnoid)); __pyx_v_self->fresnoid = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
0591: ##Canal Boundaries
+0592: self.socal = District(self, 'socal', 'SOC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_socal); __Pyx_GIVEREF(__pyx_n_u_socal); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_socal); __Pyx_INCREF(__pyx_n_u_SOC); __Pyx_GIVEREF(__pyx_n_u_SOC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SOC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->socal); __Pyx_DECREF(((PyObject *)__pyx_v_self->socal)); __pyx_v_self->socal = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0593: self.southbay = District(self, 'southbay', 'SOB')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_southbay); __Pyx_GIVEREF(__pyx_n_u_southbay); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_southbay); __Pyx_INCREF(__pyx_n_u_SOB); __Pyx_GIVEREF(__pyx_n_u_SOB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SOB); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->southbay); __Pyx_DECREF(((PyObject *)__pyx_v_self->southbay)); __pyx_v_self->southbay = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0594: self.centralcoast = District(self, 'centralcoast', 'CCA')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_centralcoast); __Pyx_GIVEREF(__pyx_n_u_centralcoast); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_centralcoast); __Pyx_INCREF(__pyx_n_u_CCA); __Pyx_GIVEREF(__pyx_n_u_CCA); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CCA); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->centralcoast); __Pyx_DECREF(((PyObject *)__pyx_v_self->centralcoast)); __pyx_v_self->centralcoast = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
0595: ##demands at canal boundaries are taken from observed pumping into canal brannch
0596:
0597: ##Other Agencies
+0598: self.dudleyridge = District(self, 'dudleyridge', 'DLR')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_dudleyridge); __Pyx_GIVEREF(__pyx_n_u_dudleyridge); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_dudleyridge); __Pyx_INCREF(__pyx_n_u_DLR); __Pyx_GIVEREF(__pyx_n_u_DLR); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DLR); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->dudleyridge); __Pyx_DECREF(((PyObject *)__pyx_v_self->dudleyridge)); __pyx_v_self->dudleyridge = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0599: self.tularelake = District(self, 'tularelake', 'TLB')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_tularelake); __Pyx_GIVEREF(__pyx_n_u_tularelake); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tularelake); __Pyx_INCREF(__pyx_n_u_TLB); __Pyx_GIVEREF(__pyx_n_u_TLB); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TLB); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->tularelake); __Pyx_DECREF(((PyObject *)__pyx_v_self->tularelake)); __pyx_v_self->tularelake = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0600: self.kaweahdelta = District(self, 'kaweahdelta', 'KWD')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kaweahdelta); __Pyx_GIVEREF(__pyx_n_u_kaweahdelta); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kaweahdelta); __Pyx_INCREF(__pyx_n_u_KWD); __Pyx_GIVEREF(__pyx_n_u_KWD); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KWD); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kaweahdelta); __Pyx_DECREF(((PyObject *)__pyx_v_self->kaweahdelta)); __pyx_v_self->kaweahdelta = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0601: self.westlands = District(self, 'westlands', 'WSL')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_westlands); __Pyx_GIVEREF(__pyx_n_u_westlands); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_westlands); __Pyx_INCREF(__pyx_n_u_WSL); __Pyx_GIVEREF(__pyx_n_u_WSL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WSL); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->westlands); __Pyx_DECREF(((PyObject *)__pyx_v_self->westlands)); __pyx_v_self->westlands = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0602: self.sanluiswater = District(self, 'sanluiswater', 'SNL')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_sanluiswater); __Pyx_GIVEREF(__pyx_n_u_sanluiswater); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_sanluiswater); __Pyx_INCREF(__pyx_n_u_SNL); __Pyx_GIVEREF(__pyx_n_u_SNL); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SNL); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->sanluiswater); __Pyx_DECREF(((PyObject *)__pyx_v_self->sanluiswater)); __pyx_v_self->sanluiswater = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0603: self.panoche = District(self, 'panoche', 'PNC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_panoche); __Pyx_GIVEREF(__pyx_n_u_panoche); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_panoche); __Pyx_INCREF(__pyx_n_u_PNC); __Pyx_GIVEREF(__pyx_n_u_PNC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PNC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->panoche); __Pyx_DECREF(((PyObject *)__pyx_v_self->panoche)); __pyx_v_self->panoche = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0604: self.delpuerto = District(self, 'delpuerto', 'DLP')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_delpuerto); __Pyx_GIVEREF(__pyx_n_u_delpuerto); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_delpuerto); __Pyx_INCREF(__pyx_n_u_DLP); __Pyx_GIVEREF(__pyx_n_u_DLP); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DLP); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->delpuerto); __Pyx_DECREF(((PyObject *)__pyx_v_self->delpuerto)); __pyx_v_self->delpuerto = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0605: self.chowchilla = District(self, 'chowchilla', 'CWC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_chowchilla); __Pyx_GIVEREF(__pyx_n_u_chowchilla); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_chowchilla); __Pyx_INCREF(__pyx_n_u_CWC); __Pyx_GIVEREF(__pyx_n_u_CWC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CWC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->chowchilla); __Pyx_DECREF(((PyObject *)__pyx_v_self->chowchilla)); __pyx_v_self->chowchilla = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0606: self.maderairr = District(self, 'maderairr', 'MAD')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_maderairr); __Pyx_GIVEREF(__pyx_n_u_maderairr); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_maderairr); __Pyx_INCREF(__pyx_n_u_MAD); __Pyx_GIVEREF(__pyx_n_u_MAD); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_MAD); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->maderairr); __Pyx_DECREF(((PyObject *)__pyx_v_self->maderairr)); __pyx_v_self->maderairr = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0607: self.othertule = District(self, 'othertule', 'OTL')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_othertule); __Pyx_GIVEREF(__pyx_n_u_othertule); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_othertule); __Pyx_INCREF(__pyx_n_u_OTL); __Pyx_GIVEREF(__pyx_n_u_OTL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OTL); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->othertule); __Pyx_DECREF(((PyObject *)__pyx_v_self->othertule)); __pyx_v_self->othertule = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0608: self.otherkaweah = District(self, 'otherkaweah', 'OKW')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_otherkaweah); __Pyx_GIVEREF(__pyx_n_u_otherkaweah); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_otherkaweah); __Pyx_INCREF(__pyx_n_u_OKW); __Pyx_GIVEREF(__pyx_n_u_OKW); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OKW); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->otherkaweah); __Pyx_DECREF(((PyObject *)__pyx_v_self->otherkaweah)); __pyx_v_self->otherkaweah = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0609: self.otherfriant = District(self, 'otherfriant', 'OFK')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_otherfriant); __Pyx_GIVEREF(__pyx_n_u_otherfriant); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherfriant); __Pyx_INCREF(__pyx_n_u_OFK); __Pyx_GIVEREF(__pyx_n_u_OFK); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OFK); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->otherfriant); __Pyx_DECREF(((PyObject *)__pyx_v_self->otherfriant)); __pyx_v_self->otherfriant = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0610: self.othercvp = District(self, 'othercvp', 'OCD')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_othercvp); __Pyx_GIVEREF(__pyx_n_u_othercvp); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_othercvp); __Pyx_INCREF(__pyx_n_u_OCD); __Pyx_GIVEREF(__pyx_n_u_OCD); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OCD); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->othercvp); __Pyx_DECREF(((PyObject *)__pyx_v_self->othercvp)); __pyx_v_self->othercvp = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0611: self.otherexchange = District(self, 'otherexchange', 'OEX')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_otherexchange); __Pyx_GIVEREF(__pyx_n_u_otherexchange); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherexchange); __Pyx_INCREF(__pyx_n_u_OEX); __Pyx_GIVEREF(__pyx_n_u_OEX); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OEX); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->otherexchange); __Pyx_DECREF(((PyObject *)__pyx_v_self->otherexchange)); __pyx_v_self->otherexchange = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0612: self.othercrossvalley = District(self, 'othercrossvalley', 'OXV')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_othercrossvalley); __Pyx_GIVEREF(__pyx_n_u_othercrossvalley); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_othercrossvalley); __Pyx_INCREF(__pyx_n_u_OXV); __Pyx_GIVEREF(__pyx_n_u_OXV); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OXV); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->othercrossvalley); __Pyx_DECREF(((PyObject *)__pyx_v_self->othercrossvalley)); __pyx_v_self->othercrossvalley = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0613: self.otherswp = District(self, 'otherswp', 'OSW')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_otherswp); __Pyx_GIVEREF(__pyx_n_u_otherswp); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherswp); __Pyx_INCREF(__pyx_n_u_OSW); __Pyx_GIVEREF(__pyx_n_u_OSW); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OSW); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->otherswp); __Pyx_DECREF(((PyObject *)__pyx_v_self->otherswp)); __pyx_v_self->otherswp = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0614: self.consolidated = District(self, 'consolidated', 'CNS')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_consolidated); __Pyx_GIVEREF(__pyx_n_u_consolidated); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_consolidated); __Pyx_INCREF(__pyx_n_u_CNS); __Pyx_GIVEREF(__pyx_n_u_CNS); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_CNS); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->consolidated); __Pyx_DECREF(((PyObject *)__pyx_v_self->consolidated)); __pyx_v_self->consolidated = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
+0615: self.alta = District(self, 'alta', 'ALT')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_alta); __Pyx_GIVEREF(__pyx_n_u_alta); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_alta); __Pyx_INCREF(__pyx_n_u_ALT); __Pyx_GIVEREF(__pyx_n_u_ALT); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ALT); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->alta); __Pyx_DECREF(((PyObject *)__pyx_v_self->alta)); __pyx_v_self->alta = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1); __pyx_t_1 = 0;
+0616: self.krwa = District(self, 'krwa', 'KRWA')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_krwa); __Pyx_GIVEREF(__pyx_n_u_krwa); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_krwa); __Pyx_INCREF(__pyx_n_u_KRWA); __Pyx_GIVEREF(__pyx_n_u_KRWA); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KRWA); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->krwa); __Pyx_DECREF(((PyObject *)__pyx_v_self->krwa)); __pyx_v_self->krwa = ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2); __pyx_t_2 = 0;
0617: # self.krwa.turnback_use = 0
0618:
0619: ##Private water users
+0620: self.wonderful = Private(self, 'wonderful', 'WON', 1.0)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_wonderful); __Pyx_GIVEREF(__pyx_n_u_wonderful); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_wonderful); __Pyx_INCREF(__pyx_n_u_WON); __Pyx_GIVEREF(__pyx_n_u_WON); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WON); __Pyx_INCREF(__pyx_float_1_0); __Pyx_GIVEREF(__pyx_float_1_0); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_float_1_0); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_10private_cy_Private), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->wonderful); __Pyx_DECREF(((PyObject *)__pyx_v_self->wonderful)); __pyx_v_self->wonderful = ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1); __pyx_t_1 = 0;
+0621: self.metropolitan = Private(self, 'metropolitan', 'MET', 1.0)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_metropolitan); __Pyx_GIVEREF(__pyx_n_u_metropolitan); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_metropolitan); __Pyx_INCREF(__pyx_n_u_MET); __Pyx_GIVEREF(__pyx_n_u_MET); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_MET); __Pyx_INCREF(__pyx_float_1_0); __Pyx_GIVEREF(__pyx_float_1_0); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_float_1_0); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_10private_cy_Private), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->metropolitan); __Pyx_DECREF(((PyObject *)__pyx_v_self->metropolitan)); __pyx_v_self->metropolitan = ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_2); __pyx_t_2 = 0;
+0622: self.castaic = Private(self, 'castaic', 'CTL', 1.0)
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_castaic); __Pyx_GIVEREF(__pyx_n_u_castaic); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_castaic); __Pyx_INCREF(__pyx_n_u_CTL); __Pyx_GIVEREF(__pyx_n_u_CTL); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CTL); __Pyx_INCREF(__pyx_float_1_0); __Pyx_GIVEREF(__pyx_float_1_0); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_float_1_0); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_10private_cy_Private), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->castaic); __Pyx_DECREF(((PyObject *)__pyx_v_self->castaic)); __pyx_v_self->castaic = ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1); __pyx_t_1 = 0;
+0623: self.coachella = Private(self, 'coachella', 'CCH', 1.0)
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_coachella); __Pyx_GIVEREF(__pyx_n_u_coachella); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_coachella); __Pyx_INCREF(__pyx_n_u_CCH); __Pyx_GIVEREF(__pyx_n_u_CCH); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_CCH); __Pyx_INCREF(__pyx_float_1_0); __Pyx_GIVEREF(__pyx_float_1_0); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_float_1_0); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_10private_cy_Private), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->coachella); __Pyx_DECREF(((PyObject *)__pyx_v_self->coachella)); __pyx_v_self->coachella = ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_2); __pyx_t_2 = 0;
0624:
0625: ##List of all intialized districts for looping
+0626: self.district_list = [self.berrenda, self.belridge, self.buenavista, self.cawelo, self.henrymiller, self.ID4, self.kerndelta, self.losthills, self.rosedale, self.semitropic, self.tehachapi, self.tejon, self.westkern, self.wheeler, self.kcwa, self.bakersfield, self.northkern, self.arvin, self.delano, self.pixley, self.exeter, self.kerntulare, self.lindmore, self.lindsay, self.lowertule, self.porterville, self.saucelito, self.shaffer, self.sosanjoaquin, self.teapot, self.terra, self.tulare, self.fresno, self.fresnoid, self.socal, self.southbay, self.centralcoast, self.dudleyridge, self.tularelake, self.westlands, self.chowchilla, self.maderairr, self.othertule, self.otherkaweah, self.otherfriant, self.othercvp, self.otherexchange, self.othercrossvalley, self.otherswp, self.consolidated, self.alta, self.krwa, self.kaweahdelta, self.sanluiswater, self.panoche, self.delpuerto]
__pyx_t_2 = PyList_New(56); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->berrenda)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->berrenda)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->berrenda)); __Pyx_INCREF(((PyObject *)__pyx_v_self->belridge)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->belridge)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->belridge)); __Pyx_INCREF(((PyObject *)__pyx_v_self->buenavista)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->buenavista)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->buenavista)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cawelo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cawelo)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->cawelo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->henrymiller)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->henrymiller)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->henrymiller)); __Pyx_INCREF(((PyObject *)__pyx_v_self->ID4)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ID4)); PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->ID4)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerndelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerndelta)); PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->kerndelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->losthills)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->losthills)); PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_self->losthills)); __Pyx_INCREF(((PyObject *)__pyx_v_self->rosedale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->rosedale)); PyList_SET_ITEM(__pyx_t_2, 8, ((PyObject *)__pyx_v_self->rosedale)); __Pyx_INCREF(((PyObject *)__pyx_v_self->semitropic)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->semitropic)); PyList_SET_ITEM(__pyx_t_2, 9, ((PyObject *)__pyx_v_self->semitropic)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tehachapi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tehachapi)); PyList_SET_ITEM(__pyx_t_2, 10, ((PyObject *)__pyx_v_self->tehachapi)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tejon)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tejon)); PyList_SET_ITEM(__pyx_t_2, 11, ((PyObject *)__pyx_v_self->tejon)); __Pyx_INCREF(((PyObject *)__pyx_v_self->westkern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->westkern)); PyList_SET_ITEM(__pyx_t_2, 12, ((PyObject *)__pyx_v_self->westkern)); __Pyx_INCREF(((PyObject *)__pyx_v_self->wheeler)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->wheeler)); PyList_SET_ITEM(__pyx_t_2, 13, ((PyObject *)__pyx_v_self->wheeler)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kcwa)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kcwa)); PyList_SET_ITEM(__pyx_t_2, 14, ((PyObject *)__pyx_v_self->kcwa)); __Pyx_INCREF(((PyObject *)__pyx_v_self->bakersfield)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->bakersfield)); PyList_SET_ITEM(__pyx_t_2, 15, ((PyObject *)__pyx_v_self->bakersfield)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkern)); PyList_SET_ITEM(__pyx_t_2, 16, ((PyObject *)__pyx_v_self->northkern)); __Pyx_INCREF(((PyObject *)__pyx_v_self->arvin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->arvin)); PyList_SET_ITEM(__pyx_t_2, 17, ((PyObject *)__pyx_v_self->arvin)); __Pyx_INCREF(((PyObject *)__pyx_v_self->delano)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->delano)); PyList_SET_ITEM(__pyx_t_2, 18, ((PyObject *)__pyx_v_self->delano)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pixley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pixley)); PyList_SET_ITEM(__pyx_t_2, 19, ((PyObject *)__pyx_v_self->pixley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exeter)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exeter)); PyList_SET_ITEM(__pyx_t_2, 20, ((PyObject *)__pyx_v_self->exeter)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerntulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerntulare)); PyList_SET_ITEM(__pyx_t_2, 21, ((PyObject *)__pyx_v_self->kerntulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lindmore)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lindmore)); PyList_SET_ITEM(__pyx_t_2, 22, ((PyObject *)__pyx_v_self->lindmore)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lindsay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lindsay)); PyList_SET_ITEM(__pyx_t_2, 23, ((PyObject *)__pyx_v_self->lindsay)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lowertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lowertule)); PyList_SET_ITEM(__pyx_t_2, 24, ((PyObject *)__pyx_v_self->lowertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->porterville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->porterville)); PyList_SET_ITEM(__pyx_t_2, 25, ((PyObject *)__pyx_v_self->porterville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->saucelito)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->saucelito)); PyList_SET_ITEM(__pyx_t_2, 26, ((PyObject *)__pyx_v_self->saucelito)); __Pyx_INCREF(((PyObject *)__pyx_v_self->shaffer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shaffer)); PyList_SET_ITEM(__pyx_t_2, 27, ((PyObject *)__pyx_v_self->shaffer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->sosanjoaquin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sosanjoaquin)); PyList_SET_ITEM(__pyx_t_2, 28, ((PyObject *)__pyx_v_self->sosanjoaquin)); __Pyx_INCREF(((PyObject *)__pyx_v_self->teapot)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->teapot)); PyList_SET_ITEM(__pyx_t_2, 29, ((PyObject *)__pyx_v_self->teapot)); __Pyx_INCREF(((PyObject *)__pyx_v_self->terra)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->terra)); PyList_SET_ITEM(__pyx_t_2, 30, ((PyObject *)__pyx_v_self->terra)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tulare)); PyList_SET_ITEM(__pyx_t_2, 31, ((PyObject *)__pyx_v_self->tulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fresno)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fresno)); PyList_SET_ITEM(__pyx_t_2, 32, ((PyObject *)__pyx_v_self->fresno)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fresnoid)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fresnoid)); PyList_SET_ITEM(__pyx_t_2, 33, ((PyObject *)__pyx_v_self->fresnoid)); __Pyx_INCREF(((PyObject *)__pyx_v_self->socal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->socal)); PyList_SET_ITEM(__pyx_t_2, 34, ((PyObject *)__pyx_v_self->socal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->southbay)); PyList_SET_ITEM(__pyx_t_2, 35, ((PyObject *)__pyx_v_self->southbay)); __Pyx_INCREF(((PyObject *)__pyx_v_self->centralcoast)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->centralcoast)); PyList_SET_ITEM(__pyx_t_2, 36, ((PyObject *)__pyx_v_self->centralcoast)); __Pyx_INCREF(((PyObject *)__pyx_v_self->dudleyridge)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dudleyridge)); PyList_SET_ITEM(__pyx_t_2, 37, ((PyObject *)__pyx_v_self->dudleyridge)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tularelake)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tularelake)); PyList_SET_ITEM(__pyx_t_2, 38, ((PyObject *)__pyx_v_self->tularelake)); __Pyx_INCREF(((PyObject *)__pyx_v_self->westlands)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->westlands)); PyList_SET_ITEM(__pyx_t_2, 39, ((PyObject *)__pyx_v_self->westlands)); __Pyx_INCREF(((PyObject *)__pyx_v_self->chowchilla)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->chowchilla)); PyList_SET_ITEM(__pyx_t_2, 40, ((PyObject *)__pyx_v_self->chowchilla)); __Pyx_INCREF(((PyObject *)__pyx_v_self->maderairr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->maderairr)); PyList_SET_ITEM(__pyx_t_2, 41, ((PyObject *)__pyx_v_self->maderairr)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othertule)); PyList_SET_ITEM(__pyx_t_2, 42, ((PyObject *)__pyx_v_self->othertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherkaweah)); PyList_SET_ITEM(__pyx_t_2, 43, ((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherfriant)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherfriant)); PyList_SET_ITEM(__pyx_t_2, 44, ((PyObject *)__pyx_v_self->otherfriant)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othercvp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othercvp)); PyList_SET_ITEM(__pyx_t_2, 45, ((PyObject *)__pyx_v_self->othercvp)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherexchange)); PyList_SET_ITEM(__pyx_t_2, 46, ((PyObject *)__pyx_v_self->otherexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othercrossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othercrossvalley)); PyList_SET_ITEM(__pyx_t_2, 47, ((PyObject *)__pyx_v_self->othercrossvalley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherswp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherswp)); PyList_SET_ITEM(__pyx_t_2, 48, ((PyObject *)__pyx_v_self->otherswp)); __Pyx_INCREF(((PyObject *)__pyx_v_self->consolidated)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->consolidated)); PyList_SET_ITEM(__pyx_t_2, 49, ((PyObject *)__pyx_v_self->consolidated)); __Pyx_INCREF(((PyObject *)__pyx_v_self->alta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->alta)); PyList_SET_ITEM(__pyx_t_2, 50, ((PyObject *)__pyx_v_self->alta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->krwa)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->krwa)); PyList_SET_ITEM(__pyx_t_2, 51, ((PyObject *)__pyx_v_self->krwa)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahdelta)); PyList_SET_ITEM(__pyx_t_2, 52, ((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluiswater)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluiswater)); PyList_SET_ITEM(__pyx_t_2, 53, ((PyObject *)__pyx_v_self->sanluiswater)); __Pyx_INCREF(((PyObject *)__pyx_v_self->panoche)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->panoche)); PyList_SET_ITEM(__pyx_t_2, 54, ((PyObject *)__pyx_v_self->panoche)); __Pyx_INCREF(((PyObject *)__pyx_v_self->delpuerto)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->delpuerto)); PyList_SET_ITEM(__pyx_t_2, 55, ((PyObject *)__pyx_v_self->delpuerto)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->district_list); __Pyx_DECREF(__pyx_v_self->district_list); __pyx_v_self->district_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0627: #list of all california aqueduct branch urban users (their demands are generated from pumping data - different than other district objects)
+0628: self.urban_list = [self.socal, self.centralcoast, self.southbay]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->socal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->socal)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->socal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->centralcoast)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->centralcoast)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->centralcoast)); __Pyx_INCREF(((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->southbay)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->urban_list); __Pyx_DECREF(__pyx_v_self->urban_list); __pyx_v_self->urban_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0629: self.private_list = [self.wonderful]
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->wonderful)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->wonderful)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->wonderful)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->private_list); __Pyx_DECREF(__pyx_v_self->private_list); __pyx_v_self->private_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0630: self.city_list = [self.metropolitan, self.castaic, self.coachella]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->metropolitan)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->metropolitan)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->metropolitan)); __Pyx_INCREF(((PyObject *)__pyx_v_self->castaic)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->castaic)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->castaic)); __Pyx_INCREF(((PyObject *)__pyx_v_self->coachella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->coachella)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->coachella)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->city_list); __Pyx_DECREF(__pyx_v_self->city_list); __pyx_v_self->city_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0631:
0632: ##District Keys - dictionary to be able to call the member from its key
+0633: self.district_keys = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->district_keys); __Pyx_DECREF(__pyx_v_self->district_keys); __pyx_v_self->district_keys = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0634: self.district_keys_len = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->district_keys_len); __Pyx_DECREF(__pyx_v_self->district_keys_len); __pyx_v_self->district_keys_len = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0635: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 635, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 635, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 635, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0636: self.district_keys[district_obj.key] = district_obj
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 636, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys, __pyx_v_district_obj->key, ((PyObject *)__pyx_v_district_obj)) < 0)) __PYX_ERR(0, 636, __pyx_L1_error)
+0637: self.district_keys_len[district_obj.key] = len(district_obj)
__pyx_t_5 = PyObject_Length(((PyObject *)__pyx_v_district_obj)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 637, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->district_keys_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 637, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys_len, __pyx_v_district_obj->key, __pyx_t_1) < 0)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0638: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 638, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 638, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 638, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0639: self.district_keys[private_obj.key] = private_obj###Private interests in the Kern Water Bank (Westside Mutual)
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 639, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys, __pyx_v_private_obj->key, ((PyObject *)__pyx_v_private_obj)) < 0)) __PYX_ERR(0, 639, __pyx_L1_error)
+0640: self.district_keys_len[private_obj.key] = len(private_obj)###Private interests in the Kern Water Bank (Westside Mutual)
__pyx_t_5 = PyObject_Length(((PyObject *)__pyx_v_private_obj)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 640, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->district_keys_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 640, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys_len, __pyx_v_private_obj->key, __pyx_t_1) < 0)) __PYX_ERR(0, 640, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0641: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 641, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 641, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 641, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 641, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0642: self.district_keys[private_obj.key] = private_obj
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 642, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys, __pyx_v_private_obj->key, ((PyObject *)__pyx_v_private_obj)) < 0)) __PYX_ERR(0, 642, __pyx_L1_error)
+0643: self.district_keys_len[private_obj.key] = len(private_obj)
__pyx_t_5 = PyObject_Length(((PyObject *)__pyx_v_private_obj)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 643, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->district_keys_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 643, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->district_keys_len, __pyx_v_private_obj->key, __pyx_t_1) < 0)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0644:
+0645: if self.demand_type == 'pesticide':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_self->demand_type, __pyx_n_u_pesticide, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 645, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L10; }
+0646: self.load_pesticide_acreage()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_load_pesticide_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0647: elif self.demand_type == 'pmp':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_self->demand_type, __pyx_n_u_pmp, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 647, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ } __pyx_L10:;
+0648: self.load_pmp_model()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_load_pmp_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0649:
+0650: self.allocate_private_contracts()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_allocate_private_contracts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0651:
+0652: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 652, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 652, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 652, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0653: district_obj.find_baseline_demands(0, self.non_leap_year, self.days_in_month)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_int_0, __pyx_t_8, __pyx_v_self->days_in_month}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_int_0, __pyx_t_8, __pyx_v_self->days_in_month}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_8); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_self->days_in_month); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0654: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 654, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 654, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 654, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0655: private_obj.find_baseline_demands(self.non_leap_year, self.days_in_month)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_11, __pyx_v_self->days_in_month}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_11, __pyx_v_self->days_in_month}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_11); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_v_self->days_in_month); __pyx_t_11 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0656: private_obj.turnout_list = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->turnout_list); __Pyx_DECREF(__pyx_v_private_obj->turnout_list); __pyx_v_private_obj->turnout_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0657: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 657, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 657, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0658: # district_obj = self.district_keys[district_key]
+0659: self.district_keys[district_key].has_private = 1
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 659, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_has_private, __pyx_int_1) < 0) __PYX_ERR(0, 659, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0660: private_obj.turnout_list[district_key] = self.district_keys[district_key].turnout_list
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 660, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_v_private_obj->turnout_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 660, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->turnout_list, __pyx_v_district_key, __pyx_t_9) < 0)) __PYX_ERR(0, 660, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0661: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 661, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 661, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 661, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0662: private_obj.turnout_list = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->turnout_list); __Pyx_DECREF(__pyx_v_private_obj->turnout_list); __pyx_v_private_obj->turnout_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0663: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 663, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 663, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0664: # district_obj = self.district_keys[district_key]
+0665: self.district_keys[district_key].has_private = 1
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 665, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 665, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_PyObject_SetAttrStr(__pyx_t_9, __pyx_n_s_has_private, __pyx_int_1) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0666: private_obj.turnout_list[district_key] = self.district_keys[district_key].turnout_list
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 666, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_v_private_obj->turnout_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 666, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->turnout_list, __pyx_v_district_key, __pyx_t_7) < 0)) __PYX_ERR(0, 666, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0667:
0668:
+0669: def initialize_sw_contracts(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_17initialize_sw_contracts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_17initialize_sw_contracts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_sw_contracts (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_16initialize_sw_contracts(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_16initialize_sw_contracts(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_contract_object = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_district = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_sw_contracts", 0);
__Pyx_TraceCall("initialize_sw_contracts", __pyx_f[0], 669, 0, __PYX_ERR(0, 669, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_sw_contracts", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_contract_object);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_district);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0670: ############################################################################
0671: ###Contract Initialization
0672: ############################################################################
0673: cdef Contract contract_obj
0674: cdef District district_obj
0675: cdef Private private_obj
0676:
0677: #Project Contracts/Water Rights
+0678: self.friant1 = Contract(self, 'friant1', 'FR1')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_friant1); __Pyx_GIVEREF(__pyx_n_u_friant1); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_friant1); __Pyx_INCREF(__pyx_n_u_FR1); __Pyx_GIVEREF(__pyx_n_u_FR1); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_FR1); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->friant1); __Pyx_DECREF(((PyObject *)__pyx_v_self->friant1)); __pyx_v_self->friant1 = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2); __pyx_t_2 = 0;
+0679: self.friant2 = Contract(self, 'friant2', 'FR2')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_friant2); __Pyx_GIVEREF(__pyx_n_u_friant2); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_friant2); __Pyx_INCREF(__pyx_n_u_FR2); __Pyx_GIVEREF(__pyx_n_u_FR2); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_FR2); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->friant2); __Pyx_DECREF(((PyObject *)__pyx_v_self->friant2)); __pyx_v_self->friant2 = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1); __pyx_t_1 = 0;
+0680: self.swpdelta = Contract(self, 'swpdelta', 'SLS')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_swpdelta); __Pyx_GIVEREF(__pyx_n_u_swpdelta); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_swpdelta); __Pyx_INCREF(__pyx_n_u_SLS); __Pyx_GIVEREF(__pyx_n_u_SLS); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SLS); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->swpdelta); __Pyx_DECREF(((PyObject *)__pyx_v_self->swpdelta)); __pyx_v_self->swpdelta = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2); __pyx_t_2 = 0;
+0681: self.cvpdelta = Contract(self, 'cvpdelta', 'SLF')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_cvpdelta); __Pyx_GIVEREF(__pyx_n_u_cvpdelta); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_cvpdelta); __Pyx_INCREF(__pyx_n_u_SLF); __Pyx_GIVEREF(__pyx_n_u_SLF); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SLF); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->cvpdelta); __Pyx_DECREF(((PyObject *)__pyx_v_self->cvpdelta)); __pyx_v_self->cvpdelta = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1); __pyx_t_1 = 0;
+0682: self.cvpexchange = Contract(self, 'cvpexchange', 'ECH')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_cvpexchange); __Pyx_GIVEREF(__pyx_n_u_cvpexchange); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_cvpexchange); __Pyx_INCREF(__pyx_n_u_ECH); __Pyx_GIVEREF(__pyx_n_u_ECH); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ECH); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->cvpexchange); __Pyx_DECREF(((PyObject *)__pyx_v_self->cvpexchange)); __pyx_v_self->cvpexchange = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2); __pyx_t_2 = 0;
+0683: self.crossvalley = Contract(self, 'crossvalley', 'CVC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_crossvalley); __Pyx_GIVEREF(__pyx_n_u_crossvalley); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_crossvalley); __Pyx_INCREF(__pyx_n_u_CVC); __Pyx_GIVEREF(__pyx_n_u_CVC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CVC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->crossvalley); __Pyx_DECREF(((PyObject *)__pyx_v_self->crossvalley)); __pyx_v_self->crossvalley = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1); __pyx_t_1 = 0;
+0684: self.kernriver = Contract(self, 'kernriver', 'KRR')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kernriver); __Pyx_GIVEREF(__pyx_n_u_kernriver); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kernriver); __Pyx_INCREF(__pyx_n_u_KRR); __Pyx_GIVEREF(__pyx_n_u_KRR); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KRR); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kernriver); __Pyx_DECREF(((PyObject *)__pyx_v_self->kernriver)); __pyx_v_self->kernriver = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2); __pyx_t_2 = 0;
+0685: self.tuleriver = Contract(self, 'tuleriver', 'TRR')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_tuleriver); __Pyx_GIVEREF(__pyx_n_u_tuleriver); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tuleriver); __Pyx_INCREF(__pyx_n_u_TRR); __Pyx_GIVEREF(__pyx_n_u_TRR); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TRR); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->tuleriver); __Pyx_DECREF(((PyObject *)__pyx_v_self->tuleriver)); __pyx_v_self->tuleriver = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1); __pyx_t_1 = 0;
+0686: self.kaweahriver = Contract(self, 'kaweahriver', 'WRR')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kaweahriver); __Pyx_GIVEREF(__pyx_n_u_kaweahriver); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kaweahriver); __Pyx_INCREF(__pyx_n_u_WRR); __Pyx_GIVEREF(__pyx_n_u_WRR); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WRR); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kaweahriver); __Pyx_DECREF(((PyObject *)__pyx_v_self->kaweahriver)); __pyx_v_self->kaweahriver = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2); __pyx_t_2 = 0;
+0687: self.kingsriver = Contract(self, 'kingsriver', 'KGR')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kingsriver); __Pyx_GIVEREF(__pyx_n_u_kingsriver); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kingsriver); __Pyx_INCREF(__pyx_n_u_KGR); __Pyx_GIVEREF(__pyx_n_u_KGR); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KGR); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->kingsriver); __Pyx_DECREF(((PyObject *)__pyx_v_self->kingsriver)); __pyx_v_self->kingsriver = ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1); __pyx_t_1 = 0;
0688:
0689: ##List of all intialized contracts for looping
+0690: self.contract_list = [self.friant1, self.friant2, self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley, self.kernriver, self.tuleriver, self.kaweahriver, self.kingsriver]
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant1)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->friant1)); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant2)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->friant2)); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->swpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->crossvalley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->kernriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriver)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->tuleriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriver)); PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_self->kaweahriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriver)); PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_v_self->kingsriver)); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->contract_list); __Pyx_DECREF(__pyx_v_self->contract_list); __pyx_v_self->contract_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0691:
0692: ##Contract Keys - dictionary to be able to call the member from its key
+0693: self.contract_keys = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->contract_keys); __Pyx_DECREF(__pyx_v_self->contract_keys); __pyx_v_self->contract_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0694: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0695: self.contract_keys[contract_obj.name] = contract_obj
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->contract_keys, __pyx_v_contract_obj->name, ((PyObject *)__pyx_v_contract_obj)) < 0)) __PYX_ERR(0, 695, __pyx_L1_error)
0696:
0697: ##For each district on the district list, find the total carryover storage
0698: ##they have associated with each contract
0699: ##Dictionary is a part of the district class, and dictionary keys are the names of contract types
+0700: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 700, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 700, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 700, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0701: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 701, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0702: contract_object = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 702, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_5);
__pyx_t_5 = 0;
+0703: if contract_object.type == "contract":
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L9; }
+0704: if district_obj.has_pesticide:
__pyx_t_6 = (__pyx_v_district_obj->has_pesticide != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L10;
}
+0705: district_obj.contract_carryover_list[contract_key] = contract_object.carryover*district_obj.project_contract[contract_key]*(1.0-min(district_obj.private_fraction))
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 705, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_district_obj->private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_7, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_district_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 705, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->contract_carryover_list, __pyx_v_contract_key, __pyx_t_7) < 0)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0706: else:
+0707: district_obj.contract_carryover_list[contract_key] = contract_object.carryover*district_obj.project_contract[contract_key]*(1.0-district_obj.private_fraction[0])
/*else*/ {
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 707, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_v_district_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 707, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_district_obj->private_fraction, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_5, 1.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_v_district_obj->contract_carryover_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 707, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->contract_carryover_list, __pyx_v_contract_key, __pyx_t_5) < 0)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_L10:;
0708:
+0709: elif contract_object.type == "right":
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { /* … */ } __pyx_L9:;
+0710: if district_obj.has_pesticide:
__pyx_t_6 = (__pyx_v_district_obj->has_pesticide != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L11;
}
+0711: district_obj.contract_carryover_list[contract_key] = contract_object.carryover*district_obj.rights[contract_key]['carryover']*(1.0-min(district_obj.private_fraction))
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 711, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_district_obj->private_fraction); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_district_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 711, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->contract_carryover_list, __pyx_v_contract_key, __pyx_t_8) < 0)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
0712: else:
+0713: district_obj.contract_carryover_list[contract_key] = contract_object.carryover*district_obj.rights[contract_key]['carryover']*(1.0-district_obj.private_fraction[0])
/*else*/ {
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(__pyx_v_district_obj->rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 713, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_v_district_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 713, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_district_obj->private_fraction, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_7, 1.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_district_obj->contract_carryover_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 713, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->contract_carryover_list, __pyx_v_contract_key, __pyx_t_7) < 0)) __PYX_ERR(0, 713, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_L11:;
+0714: if contract_key == "tableA":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 714, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+0715: district_obj.initial_table_a = district_obj.project_contract[contract_key]
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 715, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 715, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 715, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_district_obj->initial_table_a = __pyx_t_9;
0716:
+0717: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 717, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 717, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 717, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0718: private_obj.contract_list = []
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_private_obj->contract_list); __Pyx_DECREF(__pyx_v_private_obj->contract_list); __pyx_v_private_obj->contract_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0719: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 719, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0720: district = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 720, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_7);
__pyx_t_7 = 0;
+0721: for contract_key in district.contract_list:
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { __pyx_t_8 = __pyx_t_7; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 721, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 721, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 721, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 721, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0722: if contract_key not in private_obj.contract_list:
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract_key, __pyx_v_private_obj->contract_list, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 722, __pyx_L1_error) __pyx_t_12 = (__pyx_t_6 != 0); if (__pyx_t_12) { /* … */ }
+0723: private_obj.contract_list.append(contract_key)
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 723, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyList_Append(__pyx_v_private_obj->contract_list, __pyx_v_contract_key); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 723, __pyx_L1_error)
+0724: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 724, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 724, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0725: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 725, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 725, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 725, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_8));
__pyx_t_8 = 0;
+0726: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 726, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 726, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0727: contract_object = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 727, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 727, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_7);
__pyx_t_7 = 0;
+0728: if contract_object.type == "contract":
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_12) { /* … */ goto __pyx_L24; }
+0729: private_obj.contract_carryover_list[district_key][contract_key] = contract_object.carryover*district_obj.project_contract[contract_key]*max(private_obj.private_fraction[district_key])
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 729, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 729, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_14, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 729, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_carryover_list, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_contract_key, __pyx_t_5) < 0)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0730: elif contract_object.type == "right":
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_12) { /* … */ } __pyx_L24:;
+0731: private_obj.contract_carryover_list[district_key][contract_key] = contract_object.carryover*district_obj.rights[contract_key]['carryover']*max(private_obj.private_fraction[district_key])
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 731, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 731, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 731, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_carryover_list, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_contract_key, __pyx_t_14) < 0)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
0732:
+0733: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 733, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 733, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 733, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0734: private_obj.contract_list = []
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_private_obj->contract_list); __Pyx_DECREF(__pyx_v_private_obj->contract_list); __pyx_v_private_obj->contract_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0735: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 735, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 735, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0736: district = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 736, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_8);
__pyx_t_8 = 0;
+0737: for contract_key in district.contract_list:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_14 = __pyx_t_8; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 737, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_14))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 737, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_14)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 737, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif } } else { __pyx_t_8 = __pyx_t_11(__pyx_t_14); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 737, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_8); } __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0738: if contract_key not in private_obj.contract_list:
__pyx_t_12 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract_key, __pyx_v_private_obj->contract_list, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 738, __pyx_L1_error) __pyx_t_6 = (__pyx_t_12 != 0); if (__pyx_t_6) { /* … */ }
+0739: private_obj.contract_list.append(contract_key)
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 739, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyList_Append(__pyx_v_private_obj->contract_list, __pyx_v_contract_key); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 739, __pyx_L1_error)
+0740: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 740, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_14); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 740, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 740, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0741: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 741, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 741, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 741, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_14));
__pyx_t_14 = 0;
+0742: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 742, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 742, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0743: contract_object = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 743, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_8);
__pyx_t_8 = 0;
+0744: if contract_object.type == "contract":
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L36; }
+0745: private_obj.contract_carryover_list[district_key][contract_key] = contract_object.carryover*district_obj.project_contract[contract_key]*max(private_obj.private_fraction[district_key])
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 745, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 745, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_private_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 745, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_carryover_list, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_contract_key, __pyx_t_5) < 0)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0746: elif contract_object.type == "right":
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 746, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { /* … */ } __pyx_L36:;
+0747: private_obj.contract_carryover_list[district_key][contract_key] = contract_object.carryover*district_obj.rights[contract_key]['carryover']*max(private_obj.private_fraction[district_key])
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 747, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Multiply(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 747, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->contract_carryover_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 747, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_carryover_list, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_contract_key, __pyx_t_7) < 0)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0748:
0749: ###Find Risk in Contract Delivery
+0750: self.determine_recharge_recovery_risk()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_determine_recharge_recovery_risk); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0751:
0752:
+0753: def initialize_water_banks(self, scenario='baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_19initialize_water_banks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_19initialize_water_banks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_scenario = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_water_banks (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scenario,0};
PyObject* values[1] = {0};
values[0] = ((PyObject *)__pyx_n_u_baseline);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
if (value) { values[0] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_water_banks") < 0)) __PYX_ERR(0, 753, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_scenario = values[0];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("initialize_water_banks", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 753, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_water_banks", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_18initialize_water_banks(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_scenario);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_18initialize_water_banks(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_scenario) {
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_lb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_water_banks", 0);
__Pyx_TraceCall("initialize_water_banks", __pyx_f[0], 753, 0, __PYX_ERR(0, 753, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_water_banks", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_lb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0754: ############################################################################
0755: ###Water Bank Initialization
0756: ############################################################################
0757: cdef Waterbank waterbank_obj
0758: cdef District district_obj, leiu_obj
0759: cdef Private private_obj
0760:
0761: ##Water Banks
+0762: self.stockdale = Waterbank(self, 'stockdale', 'STOCK')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_stockdale); __Pyx_GIVEREF(__pyx_n_u_stockdale); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_stockdale); __Pyx_INCREF(__pyx_n_u_STOCK); __Pyx_GIVEREF(__pyx_n_u_STOCK); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_STOCK); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->stockdale); __Pyx_DECREF(((PyObject *)__pyx_v_self->stockdale)); __pyx_v_self->stockdale = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
+0763: self.kernriverbed = Waterbank(self, 'kernriverbed', 'KRC')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kernriverbed); __Pyx_GIVEREF(__pyx_n_u_kernriverbed); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kernriverbed); __Pyx_INCREF(__pyx_n_u_KRC); __Pyx_GIVEREF(__pyx_n_u_KRC); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KRC); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->kernriverbed); __Pyx_DECREF(((PyObject *)__pyx_v_self->kernriverbed)); __pyx_v_self->kernriverbed = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_1); __pyx_t_1 = 0;
+0764: self.poso = Waterbank(self, 'poso', 'POSO')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_poso); __Pyx_GIVEREF(__pyx_n_u_poso); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_poso); __Pyx_INCREF(__pyx_n_u_POSO); __Pyx_GIVEREF(__pyx_n_u_POSO); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_POSO); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->poso); __Pyx_DECREF(((PyObject *)__pyx_v_self->poso)); __pyx_v_self->poso = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
+0765: self.pioneer = Waterbank(self, 'pioneer', 'PIO')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_pioneer); __Pyx_GIVEREF(__pyx_n_u_pioneer); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_pioneer); __Pyx_INCREF(__pyx_n_u_PIO); __Pyx_GIVEREF(__pyx_n_u_PIO); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PIO); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->pioneer); __Pyx_DECREF(((PyObject *)__pyx_v_self->pioneer)); __pyx_v_self->pioneer = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_1); __pyx_t_1 = 0;
+0766: self.kwb = Waterbank(self, 'kwb', 'KWB')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_kwb); __Pyx_GIVEREF(__pyx_n_u_kwb); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kwb); __Pyx_INCREF(__pyx_n_u_KWB); __Pyx_GIVEREF(__pyx_n_u_KWB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KWB); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kwb); __Pyx_DECREF(((PyObject *)__pyx_v_self->kwb)); __pyx_v_self->kwb = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
+0767: self.berrendawb = Waterbank(self, 'berrendawb', 'BRM')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_berrendawb); __Pyx_GIVEREF(__pyx_n_u_berrendawb); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_berrendawb); __Pyx_INCREF(__pyx_n_u_BRM); __Pyx_GIVEREF(__pyx_n_u_BRM); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_BRM); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->berrendawb); __Pyx_DECREF(((PyObject *)__pyx_v_self->berrendawb)); __pyx_v_self->berrendawb = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_1); __pyx_t_1 = 0;
+0768: self.b2800 = Waterbank(self, 'b2800', 'B2800')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_b2800); __Pyx_GIVEREF(__pyx_n_u_b2800); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_b2800); __Pyx_INCREF(__pyx_n_u_B2800); __Pyx_GIVEREF(__pyx_n_u_B2800); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_B2800); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->b2800); __Pyx_DECREF(((PyObject *)__pyx_v_self->b2800)); __pyx_v_self->b2800 = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
+0769: self.aewb = Waterbank(self, 'aewb', 'AEMWD')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_aewb); __Pyx_GIVEREF(__pyx_n_u_aewb); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_aewb); __Pyx_INCREF(__pyx_n_u_AEMWD); __Pyx_GIVEREF(__pyx_n_u_AEMWD); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_AEMWD); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->aewb); __Pyx_DECREF(((PyObject *)__pyx_v_self->aewb)); __pyx_v_self->aewb = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_1); __pyx_t_1 = 0;
+0770: self.wkwb = Waterbank(self, 'wkwb', 'WKB')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_wkwb); __Pyx_GIVEREF(__pyx_n_u_wkwb); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_wkwb); __Pyx_INCREF(__pyx_n_u_WKB); __Pyx_GIVEREF(__pyx_n_u_WKB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WKB); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->wkwb); __Pyx_DECREF(((PyObject *)__pyx_v_self->wkwb)); __pyx_v_self->wkwb = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
+0771: self.irvineranch = Waterbank(self, 'irvineranch', 'IVR')
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_irvineranch); __Pyx_GIVEREF(__pyx_n_u_irvineranch); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_irvineranch); __Pyx_INCREF(__pyx_n_u_IVR); __Pyx_GIVEREF(__pyx_n_u_IVR); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_IVR); __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->irvineranch); __Pyx_DECREF(((PyObject *)__pyx_v_self->irvineranch)); __pyx_v_self->irvineranch = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_1); __pyx_t_1 = 0;
+0772: self.northkernwb = Waterbank(self, 'northkernwb', 'NKB')
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_u_northkernwb); __Pyx_GIVEREF(__pyx_n_u_northkernwb); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_northkernwb); __Pyx_INCREF(__pyx_n_u_NKB); __Pyx_GIVEREF(__pyx_n_u_NKB); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_NKB); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->northkernwb); __Pyx_DECREF(((PyObject *)__pyx_v_self->northkernwb)); __pyx_v_self->northkernwb = ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_2); __pyx_t_2 = 0;
0773:
+0774: self.waterbank_list = [self.stockdale, self.kernriverbed, self.poso, self.pioneer, self.kwb, self.berrendawb, self.b2800, self.wkwb, self.irvineranch, self.northkernwb]
__pyx_t_2 = PyList_New(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->stockdale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->stockdale)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->stockdale)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverbed)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverbed)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->kernriverbed)); __Pyx_INCREF(((PyObject *)__pyx_v_self->poso)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->poso)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->poso)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pioneer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pioneer)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->pioneer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwb)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->kwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->berrendawb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->berrendawb)); PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->berrendawb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->b2800)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->b2800)); PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->b2800)); __Pyx_INCREF(((PyObject *)__pyx_v_self->wkwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->wkwb)); PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_self->wkwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->irvineranch)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->irvineranch)); PyList_SET_ITEM(__pyx_t_2, 8, ((PyObject *)__pyx_v_self->irvineranch)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkernwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkernwb)); PyList_SET_ITEM(__pyx_t_2, 9, ((PyObject *)__pyx_v_self->northkernwb)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->waterbank_list); __Pyx_DECREF(__pyx_v_self->waterbank_list); __pyx_v_self->waterbank_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0775: self.leiu_list = []
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->leiu_list); __Pyx_DECREF(__pyx_v_self->leiu_list); __pyx_v_self->leiu_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0776:
+0777: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 777, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 777, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 777, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0778: if (district_obj.in_leiu_banking == 1):
__pyx_t_4 = ((__pyx_v_district_obj->in_leiu_banking == 1) != 0);
if (__pyx_t_4) {
/* … */
}
+0779: self.leiu_list.append(district_obj)
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 779, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->leiu_list, ((PyObject *)__pyx_v_district_obj)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 779, __pyx_L1_error)
0780:
+0781: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 781, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 781, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 781, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0782: district_obj.delivery_location_list = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_district_obj->delivery_location_list); __Pyx_DECREF(__pyx_v_district_obj->delivery_location_list); __pyx_v_district_obj->delivery_location_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0783: district_obj.delivery_location_list.append(district_obj.key)
if (unlikely(__pyx_v_district_obj->delivery_location_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 783, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_district_obj->key;
__Pyx_INCREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_district_obj->delivery_location_list, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 783, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0784: district_obj.daily_supplies_full[district_obj.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_district_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 784, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_district_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->daily_supplies_full, __pyx_t_7, __pyx_t_1) < 0)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0785: district_obj.deliveries[district_obj.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 785, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_district_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->deliveries, __pyx_t_6, __pyx_t_1) < 0)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0786: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 786, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 786, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 786, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0787: district_obj.daily_supplies_full[waterbank_obj.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_district_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 787, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_waterbank_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->daily_supplies_full, __pyx_t_8, __pyx_t_6) < 0)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0788: district_obj.deliveries[waterbank_obj.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 788, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_waterbank_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->deliveries, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0789: district_obj.delivery_location_list.append(waterbank_obj.key)
if (unlikely(__pyx_v_district_obj->delivery_location_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 789, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_waterbank_obj->key;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_district_obj->delivery_location_list, __pyx_t_6); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 789, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0790: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 790, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 790, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 790, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0791: district_obj.daily_supplies_full[leiu_obj.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_district_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 791, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_leiu_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->daily_supplies_full, __pyx_t_8, __pyx_t_6) < 0)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0792: district_obj.deliveries[leiu_obj.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 792, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_leiu_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyDict_SetItem(__pyx_v_district_obj->deliveries, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0793: district_obj.delivery_location_list.append(leiu_obj.key)
if (unlikely(__pyx_v_district_obj->delivery_location_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 793, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_leiu_obj->key;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyList_Append(__pyx_v_district_obj->delivery_location_list, __pyx_t_6); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 793, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0794: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 794, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 794, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 794, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 794, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0795: private_obj.delivery_location_list = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->delivery_location_list); __Pyx_DECREF(__pyx_v_private_obj->delivery_location_list); __pyx_v_private_obj->delivery_location_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0796: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 796, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 796, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0797: private_obj.delivery_location_list[district_key] = []
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 797, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key, __pyx_t_6) < 0)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0798: private_obj.delivery_location_list[district_key].append(district_key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 798, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 798, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_v_district_key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 798, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0799: private_obj.daily_supplies_full[district_key + '_' + district_key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 799, __pyx_L1_error) } __pyx_t_8 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = PyNumber_Add(__pyx_t_8, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_8, __pyx_t_6) < 0)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0800: private_obj.deliveries[district_key][district_key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 800, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_8, __pyx_t_6) < 0)) __PYX_ERR(0, 800, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0801: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 801, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0802: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 802, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0803: private_obj.delivery_location_list[district_key].append(waterbank_obj.key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 803, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_v_waterbank_obj->key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 803, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0804: private_obj.daily_supplies_full[district_key + '_' + waterbank_obj.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 804, __pyx_L1_error) } __pyx_t_10 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = PyNumber_Add(__pyx_t_10, __pyx_v_waterbank_obj->key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_n_u_recharged); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_10, __pyx_t_8) < 0)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0805: private_obj.deliveries[district_key][waterbank_obj.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 805, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_waterbank_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_10, __pyx_t_8) < 0)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0806: for lb in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 806, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 806, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_lb, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0807: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 807, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 807, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 807, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0808: private_obj.delivery_location_list[district_key].append(lb.key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 808, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_t_10); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0809: private_obj.daily_supplies_full[district_key + '_' + lb.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 809, __pyx_L1_error) } __pyx_t_7 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = PyNumber_Add(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Add(__pyx_t_12, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_8, __pyx_t_10) < 0)) __PYX_ERR(0, 809, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0810: private_obj.deliveries[district_key][lb.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 810, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = PyNumber_Add(__pyx_t_8, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_7, __pyx_t_10) < 0)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0811: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 811, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 811, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 811, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0812: private_obj.delivery_location_list = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->delivery_location_list); __Pyx_DECREF(__pyx_v_private_obj->delivery_location_list); __pyx_v_private_obj->delivery_location_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0813: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 813, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 813, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0814: private_obj.delivery_location_list[district_key] = []
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 814, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key, __pyx_t_6) < 0)) __PYX_ERR(0, 814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0815: private_obj.delivery_location_list[district_key].append(district_key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 815, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_v_district_key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0816: private_obj.daily_supplies_full[district_key + '_' + district_key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 816, __pyx_L1_error) } __pyx_t_7 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_t_10, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0817: private_obj.deliveries[district_key][district_key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 817, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0818: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 818, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 818, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 818, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0819: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 819, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 819, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0820: private_obj.delivery_location_list[district_key].append(waterbank_obj.key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 820, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_v_waterbank_obj->key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 820, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0821: private_obj.daily_supplies_full[district_key + '_' + waterbank_obj.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_8, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_10); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 821, __pyx_L1_error) } __pyx_t_12 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyNumber_Add(__pyx_t_12, __pyx_v_waterbank_obj->key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Add(__pyx_t_10, __pyx_n_u_recharged); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_12, __pyx_t_7) < 0)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0822: private_obj.deliveries[district_key][waterbank_obj.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_8, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_12); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 822, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_waterbank_obj->key, __pyx_n_u_recharged); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_12, __pyx_t_7) < 0)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0823: for lb in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 823, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 823, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_lb, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0824: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 824, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 824, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0825: private_obj.delivery_location_list[district_key].append(lb.key)
if (unlikely(__pyx_v_private_obj->delivery_location_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 825, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_location_list, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_t_12); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 825, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0826: private_obj.daily_supplies_full[district_key + '_' + lb.key + '_recharged'] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_12 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->daily_supplies_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 826, __pyx_L1_error) } __pyx_t_10 = PyNumber_Add(__pyx_v_district_key, __pyx_n_u__4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_t_8, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyDict_SetItem(__pyx_v_private_obj->daily_supplies_full, __pyx_t_7, __pyx_t_12) < 0)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0827: private_obj.deliveries[district_key][lb.key + '_recharged'] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_12 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 827, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_n_u_recharged); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_10, __pyx_t_12) < 0)) __PYX_ERR(0, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
0828:
+0829: if self.model_mode == 'validation':
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 829, __pyx_L1_error) __pyx_t_13 = (__pyx_t_4 != 0); if (__pyx_t_13) { /* … */ goto __pyx_L36; }
+0830: self.semitropic.inleiubanked['MET'] = 175.8
if (unlikely(__pyx_v_self->semitropic->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 830, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->semitropic->inleiubanked, __pyx_n_u_MET, __pyx_float_175_8) < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
+0831: self.semitropic.inleiubanked['SOB'] = 46.0
if (unlikely(__pyx_v_self->semitropic->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 831, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->semitropic->inleiubanked, __pyx_n_u_SOB, __pyx_float_46_0) < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
+0832: self.kwb.banked['ID4'] = 91.7
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 832, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_ID4, __pyx_float_91_7) < 0)) __PYX_ERR(0, 832, __pyx_L1_error)
+0833: self.kwb.banked['DLR'] = 260.0 * 0.0962/ 0.9038
__pyx_t_2 = PyFloat_FromDouble(((260.0 * 0.0962) / 0.9038)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kwb->banked == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 833, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_DLR, __pyx_t_2) < 0)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0834: self.kwb.banked['SMI'] = 260.0 * 0.0667/ 0.9038
__pyx_t_2 = PyFloat_FromDouble(((260.0 * 0.0667) / 0.9038)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kwb->banked == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 834, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_SMI, __pyx_t_2) < 0)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0835: self.kwb.banked['TJC'] = 260.0 * 0.02/ 0.9038
__pyx_t_2 = PyFloat_FromDouble(((260.0 * 0.02) / 0.9038)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kwb->banked == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 835, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_TJC, __pyx_t_2) < 0)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0836: self.kwb.banked['WON'] = 260.0 * 0.4806/ 0.9038
__pyx_t_2 = PyFloat_FromDouble(((260.0 * 0.4806) / 0.9038)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kwb->banked == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 836, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_WON, __pyx_t_2) < 0)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0837: self.kwb.banked['WRM'] = 260.0 * 0.2403/ 0.9038
__pyx_t_2 = PyFloat_FromDouble(((260.0 * 0.2403) / 0.9038)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kwb->banked == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 837, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_WRM, __pyx_t_2) < 0)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0838: elif self.model_mode == 'simulation':
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_simulation, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 838, __pyx_L1_error) __pyx_t_4 = (__pyx_t_13 != 0); if (__pyx_t_4) { /* … */ } __pyx_L36:;
+0839: self.semitropic.inleiubanked['MET'] = 750.0
if (unlikely(__pyx_v_self->semitropic->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 839, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->semitropic->inleiubanked, __pyx_n_u_MET, __pyx_float_750_0) < 0)) __PYX_ERR(0, 839, __pyx_L1_error)
+0840: self.semitropic.inleiubanked['SOB'] = 750.0
if (unlikely(__pyx_v_self->semitropic->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 840, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->semitropic->inleiubanked, __pyx_n_u_SOB, __pyx_float_750_0) < 0)) __PYX_ERR(0, 840, __pyx_L1_error)
+0841: self.kwb.banked['ID4'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 841, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_ID4, __pyx_float_500_0) < 0)) __PYX_ERR(0, 841, __pyx_L1_error)
+0842: self.kwb.banked['DLR'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 842, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_DLR, __pyx_float_500_0) < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
+0843: self.kwb.banked['SMI'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 843, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_SMI, __pyx_float_500_0) < 0)) __PYX_ERR(0, 843, __pyx_L1_error)
+0844: self.kwb.banked['TJC'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 844, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_TJC, __pyx_float_500_0) < 0)) __PYX_ERR(0, 844, __pyx_L1_error)
+0845: self.kwb.banked['WON'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 845, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_WON, __pyx_float_500_0) < 0)) __PYX_ERR(0, 845, __pyx_L1_error)
+0846: self.kwb.banked['WRM'] = 500.0
if (unlikely(__pyx_v_self->kwb->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 846, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->kwb->banked, __pyx_n_u_WRM, __pyx_float_500_0) < 0)) __PYX_ERR(0, 846, __pyx_L1_error)
0847:
+0848: def initialize_canals(self, scenario = 'baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_21initialize_canals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_21initialize_canals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_scenario = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_canals (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scenario,0};
PyObject* values[1] = {0};
values[0] = ((PyObject *)__pyx_n_u_baseline);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
if (value) { values[0] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_canals") < 0)) __PYX_ERR(0, 848, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_scenario = values[0];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("initialize_canals", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 848, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_canals", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_20initialize_canals(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_scenario);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_20initialize_canals(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_scenario) {
CYTHON_UNUSED int __pyx_9genexpr10__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr11__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr12__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr13__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr14__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr15__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr16__pyx_v__;
CYTHON_UNUSED int __pyx_9genexpr17__pyx_v__;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("initialize_canals", 0);
__Pyx_TraceCall("initialize_canals", __pyx_f[0], 848, 0, __PYX_ERR(0, 848, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("calfews_src.model_cy.Model.initialize_canals", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0849: ############################################################################
0850: ###Canal Initialization
0851: ############################################################################
0852: #Waterways
+0853: if (scenario == 'baseline'):
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 853, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0854: self.fkc = Canal('fkc', 'FKC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->fkc); __Pyx_DECREF(((PyObject *)__pyx_v_self->fkc)); __pyx_v_self->fkc = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__5 = PyTuple_Pack(2, __pyx_n_u_fkc, __pyx_n_u_FKC); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 854, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5);
+0855: elif (scenario['FKC'] == 'baseline'):
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0856: self.fkc = Canal('fkc', 'FKC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->fkc); __Pyx_DECREF(((PyObject *)__pyx_v_self->fkc)); __pyx_v_self->fkc = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0;
0857: else:
+0858: self.fkc = Canal('fkc', 'FKC', scenario['FKC'])
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_n_u_fkc);
__Pyx_GIVEREF(__pyx_n_u_fkc);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_fkc);
__Pyx_INCREF(__pyx_n_u_FKC);
__Pyx_GIVEREF(__pyx_n_u_FKC);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_FKC);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->fkc);
__Pyx_DECREF(((PyObject *)__pyx_v_self->fkc));
__pyx_v_self->fkc = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L3:;
0859:
+0860: self.xvc = Canal('xvc', 'XVC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->xvc); __Pyx_DECREF(((PyObject *)__pyx_v_self->xvc)); __pyx_v_self->xvc = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__6 = PyTuple_Pack(2, __pyx_n_u_xvc, __pyx_n_u_XVC); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6);
+0861: self.madera = Canal('madera', 'MDC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->madera); __Pyx_DECREF(((PyObject *)__pyx_v_self->madera)); __pyx_v_self->madera = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__7 = PyTuple_Pack(2, __pyx_n_u_madera, __pyx_n_u_MDC); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7);
+0862: self.calaqueduct = Canal('calaqueduct', 'CAA')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->calaqueduct); __Pyx_DECREF(((PyObject *)__pyx_v_self->calaqueduct)); __pyx_v_self->calaqueduct = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__8 = PyTuple_Pack(2, __pyx_n_u_calaqueduct, __pyx_n_u_CAA); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8);
+0863: self.kwbcanal = Canal('kwbcanal', 'KBC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kwbcanal); __Pyx_DECREF(((PyObject *)__pyx_v_self->kwbcanal)); __pyx_v_self->kwbcanal = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__9 = PyTuple_Pack(2, __pyx_n_u_kwbcanal, __pyx_n_u_KBC); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 863, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9);
+0864: self.aecanal = Canal('aecanal', 'AEC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->aecanal); __Pyx_DECREF(((PyObject *)__pyx_v_self->aecanal)); __pyx_v_self->aecanal = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__10 = PyTuple_Pack(2, __pyx_n_u_aecanal, __pyx_n_u_AEC); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10);
+0865: self.kerncanal = Canal('kerncanal', 'KNC')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kerncanal); __Pyx_DECREF(((PyObject *)__pyx_v_self->kerncanal)); __pyx_v_self->kerncanal = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__11 = PyTuple_Pack(2, __pyx_n_u_kerncanal, __pyx_n_u_KNC); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 865, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11);
+0866: self.calloway = Canal('calloway', 'CWY')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->calloway); __Pyx_DECREF(((PyObject *)__pyx_v_self->calloway)); __pyx_v_self->calloway = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__12 = PyTuple_Pack(2, __pyx_n_u_calloway, __pyx_n_u_CWY); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 866, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12);
+0867: self.lerdo = Canal('lerdo', 'LRD')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->lerdo); __Pyx_DECREF(((PyObject *)__pyx_v_self->lerdo)); __pyx_v_self->lerdo = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_u_lerdo, __pyx_n_u_LRD); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13);
+0868: self.beardsley = Canal('beardsley', 'BLY')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->beardsley); __Pyx_DECREF(((PyObject *)__pyx_v_self->beardsley)); __pyx_v_self->beardsley = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__14 = PyTuple_Pack(2, __pyx_n_u_beardsley, __pyx_n_u_BLY); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 868, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14);
+0869: self.kernriverchannel = Canal('kernriverchannel', 'KNR')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kernriverchannel); __Pyx_DECREF(((PyObject *)__pyx_v_self->kernriverchannel)); __pyx_v_self->kernriverchannel = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__15 = PyTuple_Pack(2, __pyx_n_u_kernriverchannel, __pyx_n_u_KNR); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15);
+0870: self.kaweahriverchannel = Canal('kaweahriverchannel', 'KWR')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kaweahriverchannel); __Pyx_DECREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __pyx_v_self->kaweahriverchannel = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_u_kaweahriverchannel, __pyx_n_u_KWR); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16);
+0871: self.tuleriverchannel = Canal('tuleriverchannel', 'TLR')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->tuleriverchannel); __Pyx_DECREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __pyx_v_self->tuleriverchannel = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__17 = PyTuple_Pack(2, __pyx_n_u_tuleriverchannel, __pyx_n_u_TLR); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17);
+0872: self.kingsriverchannel = Canal('kingsriverchannel', 'KGR')
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11calfews_src_8canal_cy_Canal), __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->kingsriverchannel); __Pyx_DECREF(((PyObject *)__pyx_v_self->kingsriverchannel)); __pyx_v_self->kingsriverchannel = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__18 = PyTuple_Pack(2, __pyx_n_u_kingsriverchannel, __pyx_n_u_KGR); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18);
0873:
+0874: self.canal_list = [self.fkc, self.madera, self.xvc, self.calaqueduct, self.kwbcanal, self.aecanal, self.kerncanal, self.calloway, self.lerdo, self.beardsley, self.kernriverchannel, self.kaweahriverchannel, self.tuleriverchannel, self.kingsriverchannel]
__pyx_t_2 = PyList_New(14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->madera)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->madera)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->madera)); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwbcanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwbcanal)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->kwbcanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->aecanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->aecanal)); PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->aecanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerncanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerncanal)); PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->kerncanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calloway)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calloway)); PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_self->calloway)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lerdo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lerdo)); PyList_SET_ITEM(__pyx_t_2, 8, ((PyObject *)__pyx_v_self->lerdo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->beardsley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->beardsley)); PyList_SET_ITEM(__pyx_t_2, 9, ((PyObject *)__pyx_v_self->beardsley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_2, 10, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); PyList_SET_ITEM(__pyx_t_2, 11, ((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriverchannel)); PyList_SET_ITEM(__pyx_t_2, 12, ((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriverchannel)); PyList_SET_ITEM(__pyx_t_2, 13, ((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->canal_list); __Pyx_DECREF(__pyx_v_self->canal_list); __pyx_v_self->canal_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0875:
0876: #initialize variables to store pumping from delta
+0877: self.trp_pumping = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr10__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 877, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->trp_pumping);
__Pyx_DECREF(__pyx_v_self->trp_pumping);
__pyx_v_self->trp_pumping = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0878: self.hro_pumping = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr11__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 878, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->hro_pumping);
__Pyx_DECREF(__pyx_v_self->hro_pumping);
__pyx_v_self->hro_pumping = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0879: self.cvp_allocation = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 879, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr12__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 879, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->cvp_allocation);
__Pyx_DECREF(__pyx_v_self->cvp_allocation);
__pyx_v_self->cvp_allocation = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0880: self.swp_allocation = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 880, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr13__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 880, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->swp_allocation);
__Pyx_DECREF(__pyx_v_self->swp_allocation);
__pyx_v_self->swp_allocation = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0881: self.annual_SWP = [0.0 for _ in range(self.number_years)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->number_years;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr14__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 881, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->annual_SWP);
__Pyx_DECREF(__pyx_v_self->annual_SWP);
__pyx_v_self->annual_SWP = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0882: self.annual_CVP = [0.0 for _ in range(self.number_years)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->number_years;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr15__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 882, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->annual_CVP);
__Pyx_DECREF(__pyx_v_self->annual_CVP);
__pyx_v_self->annual_CVP = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0883: self.ytd_pump_trp = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 883, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr16__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 883, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->ytd_pump_trp);
__Pyx_DECREF(__pyx_v_self->ytd_pump_trp);
__pyx_v_self->ytd_pump_trp = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0884: self.ytd_pump_hro = [0.0 for _ in range(self.T)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_v_self->T;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_9genexpr17__pyx_v__ = __pyx_t_6;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 884, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->ytd_pump_hro);
__Pyx_DECREF(__pyx_v_self->ytd_pump_hro);
__pyx_v_self->ytd_pump_hro = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
0885:
0886:
0887:
+0888: def create_object_associations(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_23create_object_associations(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_23create_object_associations(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("create_object_associations (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_22create_object_associations(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_22create_object_associations(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj2 = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_district_key = NULL;
Py_ssize_t __pyx_v_i;
PyObject *__pyx_v_z = NULL;
long __pyx_v_use_reservoir;
PyObject *__pyx_v_contract_key_dis = NULL;
CYTHON_UNUSED int __pyx_9genexpr18__pyx_v__;
CYTHON_UNUSED long __pyx_9genexpr19__pyx_v__;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("create_object_associations", 0);
__Pyx_TraceCall("create_object_associations", __pyx_f[0], 888, 0, __PYX_ERR(0, 888, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("calfews_src.model_cy.Model.create_object_associations", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_z);
__Pyx_XDECREF(__pyx_v_contract_key_dis);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0889: cdef Private private_obj
0890: cdef District district_obj
0891: cdef Canal canal_obj, canal_obj2
0892: cdef Contract contract_obj
0893: cdef Reservoir reservoir_obj
0894:
0895: ##Canal Structure Dictionary
0896: #This is the dictionary that holds the structure of the canal system. The dictionary is made up of lists, with the objects in the lists representing delivery nodes on the canal (canal is denoted by dictionary key)
0897: #Objects can be districts, waterbanks, or other canals. Canal objects show an intersection with the canal represented by the dictionary 'key' that holds the list. Dictionary keys are all canal keys. If a canal is located on a list, the canal associated with that list's key will also be on the list associated with the canal of the first key (i.e., if self.fkc is on the list with the key 'self.canal_district['xvc'], then the object self.xvc will be on the list with the key self.canal_district['fkc'] - these intersections help to organize these lists into a structure that models the interconnected canal structure
0898: #The first object on each list is either a reservoir or another canal
+0899: self.canal_district = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->canal_district); __Pyx_DECREF(__pyx_v_self->canal_district); __pyx_v_self->canal_district = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0900: self.canal_district['fkc'] = [self.millerton, self.fresno, self.fresnoid, self.kingsriverchannel, self.otherfriant, self.tulare, self.kaweahdelta, self.otherkaweah, self.kaweahriverchannel, self.exeter, self.lindsay, self.lindmore, self.porterville, self.lowertule, self.othertule, self.tuleriverchannel, self.teapot, self.saucelito, self.terra, self.othercrossvalley, self.pixley, self.delano, self.kerntulare, self.sosanjoaquin, self.shaffer, self.northkern, self.northkernwb, self.xvc, self.kernriverchannel, self.aecanal]
__pyx_t_1 = PyList_New(30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fresno)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fresno)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fresno)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fresnoid)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fresnoid)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->fresnoid)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriverchannel)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherfriant)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherfriant)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->otherfriant)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tulare)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->tulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahdelta)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherkaweah)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exeter)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exeter)); PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_v_self->exeter)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lindsay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lindsay)); PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_v_self->lindsay)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lindmore)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lindmore)); PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_v_self->lindmore)); __Pyx_INCREF(((PyObject *)__pyx_v_self->porterville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->porterville)); PyList_SET_ITEM(__pyx_t_1, 12, ((PyObject *)__pyx_v_self->porterville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lowertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lowertule)); PyList_SET_ITEM(__pyx_t_1, 13, ((PyObject *)__pyx_v_self->lowertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othertule)); PyList_SET_ITEM(__pyx_t_1, 14, ((PyObject *)__pyx_v_self->othertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriverchannel)); PyList_SET_ITEM(__pyx_t_1, 15, ((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->teapot)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->teapot)); PyList_SET_ITEM(__pyx_t_1, 16, ((PyObject *)__pyx_v_self->teapot)); __Pyx_INCREF(((PyObject *)__pyx_v_self->saucelito)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->saucelito)); PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_v_self->saucelito)); __Pyx_INCREF(((PyObject *)__pyx_v_self->terra)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->terra)); PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_v_self->terra)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othercrossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othercrossvalley)); PyList_SET_ITEM(__pyx_t_1, 19, ((PyObject *)__pyx_v_self->othercrossvalley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pixley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pixley)); PyList_SET_ITEM(__pyx_t_1, 20, ((PyObject *)__pyx_v_self->pixley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->delano)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->delano)); PyList_SET_ITEM(__pyx_t_1, 21, ((PyObject *)__pyx_v_self->delano)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerntulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerntulare)); PyList_SET_ITEM(__pyx_t_1, 22, ((PyObject *)__pyx_v_self->kerntulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->sosanjoaquin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sosanjoaquin)); PyList_SET_ITEM(__pyx_t_1, 23, ((PyObject *)__pyx_v_self->sosanjoaquin)); __Pyx_INCREF(((PyObject *)__pyx_v_self->shaffer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shaffer)); PyList_SET_ITEM(__pyx_t_1, 24, ((PyObject *)__pyx_v_self->shaffer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkern)); PyList_SET_ITEM(__pyx_t_1, 25, ((PyObject *)__pyx_v_self->northkern)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkernwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkernwb)); PyList_SET_ITEM(__pyx_t_1, 26, ((PyObject *)__pyx_v_self->northkernwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 28, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->aecanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->aecanal)); PyList_SET_ITEM(__pyx_t_1, 29, ((PyObject *)__pyx_v_self->aecanal)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 900, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_fkc, __pyx_t_1) < 0)) __PYX_ERR(0, 900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0901: self.canal_district['mdc'] = [self.millerton, self.maderairr, self.chowchilla]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->maderairr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->maderairr)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->maderairr)); __Pyx_INCREF(((PyObject *)__pyx_v_self->chowchilla)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->chowchilla)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->chowchilla)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 901, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_mdc, __pyx_t_1) < 0)) __PYX_ERR(0, 901, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0902: self.canal_district['caa'] = [self.sanluis, self.southbay, self.sanluiswater, self.panoche, self.delpuerto, self.otherswp, self.othercvp, self.otherexchange, self.westlands, self.centralcoast, self.tularelake, self.dudleyridge, self.losthills, self.berrenda, self.belridge, self.semitropic, self.buenavista, self.wkwb, self.xvc, self.kwbcanal, self.kernriverchannel, self.henrymiller, self.wheeler, self.aecanal, self.tejon, self.tehachapi, self.socal]
__pyx_t_1 = PyList_New(27); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluis)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->sanluis)); __Pyx_INCREF(((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->southbay)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->southbay)); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluiswater)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluiswater)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->sanluiswater)); __Pyx_INCREF(((PyObject *)__pyx_v_self->panoche)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->panoche)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->panoche)); __Pyx_INCREF(((PyObject *)__pyx_v_self->delpuerto)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->delpuerto)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->delpuerto)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherswp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherswp)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->otherswp)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othercvp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othercvp)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->othercvp)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherexchange)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->otherexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->westlands)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->westlands)); PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_self->westlands)); __Pyx_INCREF(((PyObject *)__pyx_v_self->centralcoast)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->centralcoast)); PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_v_self->centralcoast)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tularelake)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tularelake)); PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_v_self->tularelake)); __Pyx_INCREF(((PyObject *)__pyx_v_self->dudleyridge)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dudleyridge)); PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_v_self->dudleyridge)); __Pyx_INCREF(((PyObject *)__pyx_v_self->losthills)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->losthills)); PyList_SET_ITEM(__pyx_t_1, 12, ((PyObject *)__pyx_v_self->losthills)); __Pyx_INCREF(((PyObject *)__pyx_v_self->berrenda)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->berrenda)); PyList_SET_ITEM(__pyx_t_1, 13, ((PyObject *)__pyx_v_self->berrenda)); __Pyx_INCREF(((PyObject *)__pyx_v_self->belridge)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->belridge)); PyList_SET_ITEM(__pyx_t_1, 14, ((PyObject *)__pyx_v_self->belridge)); __Pyx_INCREF(((PyObject *)__pyx_v_self->semitropic)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->semitropic)); PyList_SET_ITEM(__pyx_t_1, 15, ((PyObject *)__pyx_v_self->semitropic)); __Pyx_INCREF(((PyObject *)__pyx_v_self->buenavista)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->buenavista)); PyList_SET_ITEM(__pyx_t_1, 16, ((PyObject *)__pyx_v_self->buenavista)); __Pyx_INCREF(((PyObject *)__pyx_v_self->wkwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->wkwb)); PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_v_self->wkwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwbcanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwbcanal)); PyList_SET_ITEM(__pyx_t_1, 19, ((PyObject *)__pyx_v_self->kwbcanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 20, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->henrymiller)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->henrymiller)); PyList_SET_ITEM(__pyx_t_1, 21, ((PyObject *)__pyx_v_self->henrymiller)); __Pyx_INCREF(((PyObject *)__pyx_v_self->wheeler)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->wheeler)); PyList_SET_ITEM(__pyx_t_1, 22, ((PyObject *)__pyx_v_self->wheeler)); __Pyx_INCREF(((PyObject *)__pyx_v_self->aecanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->aecanal)); PyList_SET_ITEM(__pyx_t_1, 23, ((PyObject *)__pyx_v_self->aecanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tejon)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tejon)); PyList_SET_ITEM(__pyx_t_1, 24, ((PyObject *)__pyx_v_self->tejon)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tehachapi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tehachapi)); PyList_SET_ITEM(__pyx_t_1, 25, ((PyObject *)__pyx_v_self->tehachapi)); __Pyx_INCREF(((PyObject *)__pyx_v_self->socal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->socal)); PyList_SET_ITEM(__pyx_t_1, 26, ((PyObject *)__pyx_v_self->socal)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 902, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_caa, __pyx_t_1) < 0)) __PYX_ERR(0, 902, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0903: self.canal_district['xvc'] = [self.calaqueduct, self.buenavista, self.kwb, self.irvineranch, self.pioneer, self.b2800, self.berrendawb, self.rosedale, self.ID4, self.kernriverchannel, self.fkc, self.aecanal, self.beardsley]
__pyx_t_1 = PyList_New(13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->buenavista)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->buenavista)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->buenavista)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwb)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->irvineranch)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->irvineranch)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->irvineranch)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pioneer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pioneer)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->pioneer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->b2800)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->b2800)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->b2800)); __Pyx_INCREF(((PyObject *)__pyx_v_self->berrendawb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->berrendawb)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->berrendawb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->rosedale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->rosedale)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->rosedale)); __Pyx_INCREF(((PyObject *)__pyx_v_self->ID4)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ID4)); PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_self->ID4)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->aecanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->aecanal)); PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_v_self->aecanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->beardsley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->beardsley)); PyList_SET_ITEM(__pyx_t_1, 12, ((PyObject *)__pyx_v_self->beardsley)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 903, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_xvc, __pyx_t_1) < 0)) __PYX_ERR(0, 903, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0904: self.canal_district['kbc'] = [self.calaqueduct, self.kwb, self.kerncanal]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwb)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->kwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerncanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerncanal)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kerncanal)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 904, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_kbc, __pyx_t_1) < 0)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0905: self.canal_district['aec'] = [self.fkc, self.xvc, self.kernriverchannel, self.arvin, self.calaqueduct]
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->arvin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->arvin)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->arvin)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 905, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_aec, __pyx_t_1) < 0)) __PYX_ERR(0, 905, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0906: self.canal_district['knr'] = [self.isabella, self.calloway, self.kerndelta, self.lerdo, self.xvc, self.aecanal, self.fkc, self.kerncanal, self.rosedale, self.bakersfield, self.berrendawb, self.b2800, self.pioneer, self.kwb, self.buenavista, self.calaqueduct]
__pyx_t_1 = PyList_New(16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calloway)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calloway)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->calloway)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerndelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerndelta)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kerndelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lerdo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lerdo)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->lerdo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->aecanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->aecanal)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->aecanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerncanal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerncanal)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->kerncanal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->rosedale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->rosedale)); PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_self->rosedale)); __Pyx_INCREF(((PyObject *)__pyx_v_self->bakersfield)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->bakersfield)); PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_v_self->bakersfield)); __Pyx_INCREF(((PyObject *)__pyx_v_self->berrendawb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->berrendawb)); PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_v_self->berrendawb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->b2800)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->b2800)); PyList_SET_ITEM(__pyx_t_1, 11, ((PyObject *)__pyx_v_self->b2800)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pioneer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pioneer)); PyList_SET_ITEM(__pyx_t_1, 12, ((PyObject *)__pyx_v_self->pioneer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwb)); PyList_SET_ITEM(__pyx_t_1, 13, ((PyObject *)__pyx_v_self->kwb)); __Pyx_INCREF(((PyObject *)__pyx_v_self->buenavista)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->buenavista)); PyList_SET_ITEM(__pyx_t_1, 14, ((PyObject *)__pyx_v_self->buenavista)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 15, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 906, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_knr, __pyx_t_1) < 0)) __PYX_ERR(0, 906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0907: self.canal_district['knc'] = [self.kernriverchannel, self.kerndelta, self.ID4, self.pioneer, self.buenavista, self.kwb]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerndelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerndelta)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->kerndelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->ID4)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ID4)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->ID4)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pioneer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pioneer)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->pioneer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->buenavista)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->buenavista)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->buenavista)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kwb)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->kwb)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 907, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_knc, __pyx_t_1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0908: #self.canal_district['gsl'] = [self.kernriverchannel, self.xvc, self.rosedale21]
+0909: self.canal_district['cwy'] = [self.kernriverchannel, self.beardsley, self.cawelo, self.northkern, self.poso, self.northkernwb]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->beardsley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->beardsley)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->beardsley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cawelo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cawelo)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->cawelo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkern)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->northkern)); __Pyx_INCREF(((PyObject *)__pyx_v_self->poso)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->poso)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->poso)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkernwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkernwb)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->northkernwb)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 909, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_cwy, __pyx_t_1) < 0)) __PYX_ERR(0, 909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0910: self.canal_district['lrd'] = [self.kernriverchannel, self.cawelo, self.northkern, self.poso, self.northkernwb]
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cawelo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cawelo)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->cawelo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkern)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkern)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->northkern)); __Pyx_INCREF(((PyObject *)__pyx_v_self->poso)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->poso)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->poso)); __Pyx_INCREF(((PyObject *)__pyx_v_self->northkernwb)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->northkernwb)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->northkernwb)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 910, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_lrd, __pyx_t_1) < 0)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0911: self.canal_district['bly'] = [self.xvc, self.calloway]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->xvc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->xvc)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->xvc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->calloway)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calloway)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->calloway)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 911, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_bly, __pyx_t_1) < 0)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0912: self.canal_district['kwr'] = [self.kaweah, self.otherkaweah, self.tulare, self.fkc, self.kaweahdelta, self.tularelake]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->otherkaweah)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->otherkaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tulare)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->tulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahdelta)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tularelake)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tularelake)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->tularelake)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 912, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_kwr, __pyx_t_1) < 0)) __PYX_ERR(0, 912, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0913: self.canal_district['tlr'] = [self.success, self.othertule, self.lowertule, self.porterville, self.fkc, self.tularelake]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->othertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->othertule)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->othertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lowertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lowertule)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->lowertule)); __Pyx_INCREF(((PyObject *)__pyx_v_self->porterville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->porterville)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->porterville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tularelake)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tularelake)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->tularelake)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 913, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_tlr, __pyx_t_1) < 0)) __PYX_ERR(0, 913, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0914: self.canal_district['kgr'] = [self.pineflat, self.consolidated, self.alta, self.krwa, self.fresnoid, self.fkc, self.kaweahdelta, self.tularelake]
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->consolidated)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->consolidated)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->consolidated)); __Pyx_INCREF(((PyObject *)__pyx_v_self->alta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->alta)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->alta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->krwa)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->krwa)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->krwa)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fresnoid)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fresnoid)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->fresnoid)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahdelta)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->kaweahdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tularelake)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tularelake)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->tularelake)); if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 914, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district, __pyx_n_u_kgr, __pyx_t_1) < 0)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0915:
+0916: self.canal_district_len = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->canal_district_len); __Pyx_DECREF(__pyx_v_self->canal_district_len); __pyx_v_self->canal_district_len = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0917: for key in ['fkc','mdc','caa','xvc','kbc','aec','knr','knc','cwy','lrd','bly','kwr','tlr','kgr']:
__pyx_t_1 = __pyx_tuple__19; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 14) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 917, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__19 = PyTuple_Pack(14, __pyx_n_u_fkc, __pyx_n_u_mdc, __pyx_n_u_caa, __pyx_n_u_xvc, __pyx_n_u_kbc, __pyx_n_u_aec, __pyx_n_u_knr, __pyx_n_u_knc, __pyx_n_u_cwy, __pyx_n_u_lrd, __pyx_n_u_bly, __pyx_n_u_kwr, __pyx_n_u_tlr, __pyx_n_u_kgr); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19);
+0918: self.canal_district_len[key] = len(self.canal_district[key])
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 918, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 918, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 918, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->canal_district_len, __pyx_v_key, __pyx_t_3) < 0)) __PYX_ERR(0, 918, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0919:
+0920: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 920, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 920, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 920, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0921: private_obj.seepage = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->seepage); __Pyx_DECREF(__pyx_v_private_obj->seepage); __pyx_v_private_obj->seepage = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0922: private_obj.must_fill = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->must_fill); __Pyx_DECREF(__pyx_v_private_obj->must_fill); __pyx_v_private_obj->must_fill = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0923: private_obj.seasonal_connection = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->seasonal_connection); __Pyx_DECREF(__pyx_v_private_obj->seasonal_connection); __pyx_v_private_obj->seasonal_connection = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0924: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 924, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 924, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0925: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 925, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 925, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 925, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+0926: private_obj.seepage[district_key] = district_obj.seepage
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_district_obj->seepage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->seepage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 926, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->seepage, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0927: private_obj.must_fill[district_key] = district_obj.must_fill
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_district_obj->must_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->must_fill == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 927, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->must_fill, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0928: private_obj.seasonal_connection[district_key] = district_obj.seasonal_connection
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_district_obj->seasonal_connection); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->seasonal_connection == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 928, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->seasonal_connection, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 928, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0929: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 929, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 929, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 929, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0930: private_obj.seepage = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->seepage); __Pyx_DECREF(__pyx_v_private_obj->seepage); __pyx_v_private_obj->seepage = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0931: private_obj.must_fill = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->must_fill); __Pyx_DECREF(__pyx_v_private_obj->must_fill); __pyx_v_private_obj->must_fill = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0932: private_obj.seasonal_connection = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->seasonal_connection); __Pyx_DECREF(__pyx_v_private_obj->seasonal_connection); __pyx_v_private_obj->seasonal_connection = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0933: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 933, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 933, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0934: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 934, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 934, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+0935: private_obj.seepage[district_key] = district_obj.seepage
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_district_obj->seepage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->seepage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 935, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->seepage, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0936: private_obj.must_fill[district_key] = district_obj.must_fill
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_district_obj->must_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->must_fill == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 936, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->must_fill, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 936, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0937: private_obj.seasonal_connection[district_key] = district_obj.seasonal_connection
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_district_obj->seasonal_connection); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_private_obj->seasonal_connection == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 937, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->seasonal_connection, __pyx_v_district_key, __pyx_t_5) < 0)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0938:
0939: ###After the canal structure is defined, each of the nodes on the list
0940: ###has a demand initialized. There are many different types of demands
0941: ###depending on the surface water availabilities
+0942: for canal_obj in self.canal_list:
if (unlikely(__pyx_v_self->canal_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 942, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->canal_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 942, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 942, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0943: canal_obj.num_sites = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 943, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 943, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_canal_obj->num_sites = __pyx_t_6;
+0944: canal_obj.turnout_use = [0.0 for _ in range(canal_obj.num_sites)] ##how much water diverted at a node
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __pyx_v_canal_obj->num_sites;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_9genexpr18__pyx_v__ = __pyx_t_8;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 944, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_canal_obj->turnout_use);
__Pyx_DECREF(__pyx_v_canal_obj->turnout_use);
__pyx_v_canal_obj->turnout_use = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
+0945: canal_obj.flow = [0.0 for _ in range(canal_obj.num_sites+1)] ##how much water passing through a node (inc. diversions)
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = (__pyx_v_canal_obj->num_sites + 1);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_9genexpr19__pyx_v__ = __pyx_t_11;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 945, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_canal_obj->flow);
__Pyx_DECREF(__pyx_v_canal_obj->flow);
__pyx_v_canal_obj->flow = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
+0946: canal_obj.demand = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_canal_obj->demand); __Pyx_DECREF(__pyx_v_canal_obj->demand); __pyx_v_canal_obj->demand = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0947: canal_obj.turnout_frac = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_canal_obj->turnout_frac); __Pyx_DECREF(__pyx_v_canal_obj->turnout_frac); __pyx_v_canal_obj->turnout_frac = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0948: canal_obj.recovery_flow_frac = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_canal_obj->recovery_flow_frac); __Pyx_DECREF(__pyx_v_canal_obj->recovery_flow_frac); __pyx_v_canal_obj->recovery_flow_frac = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0949: canal_obj.daily_flow = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_canal_obj->daily_flow); __Pyx_DECREF(__pyx_v_canal_obj->daily_flow); __pyx_v_canal_obj->daily_flow = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0950: canal_obj.daily_turnout = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_canal_obj->daily_turnout); __Pyx_DECREF(__pyx_v_canal_obj->daily_turnout); __pyx_v_canal_obj->daily_turnout = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0951: for i in range(len(self.canal_district[canal_obj.name])):
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 951, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 951, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 951, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_i = __pyx_t_13;
+0952: canal_obj.daily_flow[self.canal_district[canal_obj.name][i].key] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_3 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_5); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_v_canal_obj->daily_flow == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 952, __pyx_L1_error) } if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 952, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_14, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->daily_flow, __pyx_t_14, __pyx_t_3) < 0)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0953: canal_obj.daily_turnout[self.canal_district[canal_obj.name][i].key] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_15, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_canal_obj->daily_turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 953, __pyx_L1_error) } if (unlikely(__pyx_v_self->canal_district == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 953, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->daily_turnout, __pyx_t_5, __pyx_t_3) < 0)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; }
+0954: for z in ['contractor', 'turnout', 'excess', 'priority', 'secondary', 'initial', 'supplemental']:
__pyx_t_3 = __pyx_tuple__20; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 7) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 954, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_XDECREF_SET(__pyx_v_z, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__20 = PyTuple_Pack(7, __pyx_n_u_contractor, __pyx_n_u_turnout, __pyx_n_u_excess, __pyx_n_u_priority, __pyx_n_u_secondary, __pyx_n_u_initial, __pyx_n_u_supplemental); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20);
+0955: canal_obj.demand[z] = np.zeros(canal_obj.num_sites)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_5 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_canal_obj->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 955, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->demand, __pyx_v_z, __pyx_t_5) < 0)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0956: canal_obj.turnout_frac[z] = np.zeros(canal_obj.num_sites)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_5 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_16, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_v_canal_obj->turnout_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 956, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->turnout_frac, __pyx_v_z, __pyx_t_5) < 0)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0957: canal_obj.recovery_flow_frac[z] = np.ones(canal_obj.num_sites)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_ones); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_5 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_canal_obj->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 957, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->recovery_flow_frac, __pyx_v_z, __pyx_t_5) < 0)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0958: for canal_obj2 in [self.calaqueduct, self.fkc, self.madera, self.kernriverchannel, self.tuleriverchannel, self.kaweahriverchannel]:
__pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->madera)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->madera)); PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->madera)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriverchannel)); PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->kaweahriverchannel)); __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (__pyx_t_4 >= 6) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 958, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_canal_obj2, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0959: canal_obj.demand[canal_obj2.name] = np.zeros(canal_obj.num_sites)##for irrigation deliveries
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_16, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_v_canal_obj->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 959, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->demand, __pyx_v_canal_obj2->name, __pyx_t_3) < 0)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0960: canal_obj.turnout_frac[canal_obj2] = np.zeros(canal_obj.num_sites)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_canal_obj->turnout_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 960, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->turnout_frac, ((PyObject *)__pyx_v_canal_obj2), __pyx_t_3) < 0)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0961: canal_obj.recovery_flow_frac[canal_obj2] = np.ones(canal_obj.num_sites)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_ones); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_canal_obj->num_sites); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_16, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__pyx_v_canal_obj->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 961, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal_obj->recovery_flow_frac, ((PyObject *)__pyx_v_canal_obj2), __pyx_t_3) < 0)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0962:
0963: ##There are 6 main canals (fkc, madera, calaqueduct, kernriverchannel, kaweahriverchannel, and tuleriverchannel) that are directly connected to surface water storage
0964: ##The other canals connect these major arteries, but sometimes water from one canal will have 'priority' to use the connecting canals
0965: ##mainly shows that the California Aqueduct has first priority to use the Cross Valley Canal
0966: ##and the Kern River has first priority over the kern river canal
+0967: self.canal_priority = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->canal_priority); __Pyx_DECREF(__pyx_v_self->canal_priority); __pyx_v_self->canal_priority = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0968: self.canal_priority['fkc'] = [self.fkc]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->fkc)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 968, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_fkc, __pyx_t_1) < 0)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0969: self.canal_priority['mdc'] = [self.madera]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->madera)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->madera)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->madera)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 969, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_mdc, __pyx_t_1) < 0)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0970: self.canal_priority['caa'] = [self.calaqueduct]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 970, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_caa, __pyx_t_1) < 0)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0971: self.canal_priority['xvc'] = [self.calaqueduct]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 971, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_xvc, __pyx_t_1) < 0)) __PYX_ERR(0, 971, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0972: self.canal_priority['kbc'] = [self.calaqueduct, self.kernriverchannel]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 972, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_kbc, __pyx_t_1) < 0)) __PYX_ERR(0, 972, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0973: self.canal_priority['aec'] = [self.calaqueduct, self.fkc]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fkc)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 973, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_aec, __pyx_t_1) < 0)) __PYX_ERR(0, 973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0974: self.canal_priority['knr'] = [self.kernriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 974, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_knr, __pyx_t_1) < 0)) __PYX_ERR(0, 974, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0975: self.canal_priority['knc'] = [self.kernriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 975, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_knc, __pyx_t_1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0976: self.canal_priority['gsl'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 976, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_gsl, __pyx_t_1) < 0)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0977: self.canal_priority['cwy'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 977, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_cwy, __pyx_t_1) < 0)) __PYX_ERR(0, 977, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0978: self.canal_priority['lrd'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 978, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_lrd, __pyx_t_1) < 0)) __PYX_ERR(0, 978, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0979: self.canal_priority['bly'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 979, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_bly, __pyx_t_1) < 0)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0980: self.canal_priority['kwr'] = [self.kaweahriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kaweahriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 980, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_kwr, __pyx_t_1) < 0)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0981: self.canal_priority['tlr'] = [self.tuleriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->tuleriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 981, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_tlr, __pyx_t_1) < 0)) __PYX_ERR(0, 981, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0982: self.canal_priority['kgr'] = [self.kingsriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kingsriverchannel)); if (unlikely(__pyx_v_self->canal_priority == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 982, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_priority, __pyx_n_u_kgr, __pyx_t_1) < 0)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0983:
0984: ##Linkages between reservoirs, canals, and surface water contracts
0985: ##Reservoir-Contract Relationships (reservoirs are dictionary key, contracts are list objects)
+0986: self.reservoir_contract = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->reservoir_contract); __Pyx_DECREF(__pyx_v_self->reservoir_contract); __pyx_v_self->reservoir_contract = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0987: self.reservoir_contract['SLF'] = [self.crossvalley, self.cvpdelta, self.cvpexchange]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->crossvalley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->cvpexchange)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 987, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_SLF, __pyx_t_1) < 0)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0988: self.reservoir_contract['SLS'] = [self.swpdelta]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->swpdelta)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 988, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_SLS, __pyx_t_1) < 0)) __PYX_ERR(0, 988, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0989: self.reservoir_contract['MIL'] = [self.friant2, self.friant1]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant2)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->friant2)); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant1)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->friant1)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 989, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_MIL, __pyx_t_1) < 0)) __PYX_ERR(0, 989, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0990: self.reservoir_contract['ISB'] = [self.kernriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriver)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 990, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_ISB, __pyx_t_1) < 0)) __PYX_ERR(0, 990, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0991: self.reservoir_contract['SUC'] = [self.tuleriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->tuleriver)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 991, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_SUC, __pyx_t_1) < 0)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0992: self.reservoir_contract['KWH'] = [self.kaweahriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kaweahriver)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 992, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_KWH, __pyx_t_1) < 0)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0993: self.reservoir_contract['PFT'] = [self.kingsriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kingsriver)); if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 993, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_contract, __pyx_n_u_PFT, __pyx_t_1) < 0)) __PYX_ERR(0, 993, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0994:
+0995: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 995, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 995, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 995, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0996: district_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_district_obj->carryover_rights); __Pyx_DECREF(__pyx_v_district_obj->carryover_rights); __pyx_v_district_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+0997: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 997, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 997, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 997, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0998: if contract_obj.type == 'right':
__pyx_t_17 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 998, __pyx_L1_error) __pyx_t_18 = (__pyx_t_17 != 0); if (__pyx_t_18) { /* … */ goto __pyx_L29; }
+0999: if district_obj.has_pesticide:
__pyx_t_18 = (__pyx_v_district_obj->has_pesticide != 0);
if (__pyx_t_18) {
/* … */
goto __pyx_L30;
}
+1000: district_obj.carryover_rights[contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*(1.0-district_obj.private_fraction[0])
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1000, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_14, __pyx_n_u_carryover); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Multiply(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_district_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1000, __pyx_L1_error) } __pyx_t_15 = __Pyx_GetItemInt_List(__pyx_v_district_obj->private_fraction, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_15, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Multiply(__pyx_t_14, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1000, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_t_15) < 0)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
1001: else:
+1002: district_obj.carryover_rights[contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*(1.0-district_obj.private_fraction[0])
/*else*/ {
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_district_obj->rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1002, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_v_district_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1002, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_GetItemInt_List(__pyx_v_district_obj->private_fraction, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_14, 1.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1002, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_t_14) < 0)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__pyx_L30:;
1003: else:
+1004: district_obj.carryover_rights[contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1004, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1004, __pyx_L1_error)
}
__pyx_L29:;
1005:
+1006: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1006, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1006, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1006, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1007: private_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1008: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1008, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_14); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1008, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1008, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1009: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1009, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1009, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_14));
__pyx_t_14 = 0;
+1010: private_obj.carryover_rights[district_key] = {}
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1010, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_14) < 0)) __PYX_ERR(0, 1010, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1011: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1011, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_15); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1011, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1011, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_15));
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1012: if contract_obj.type == 'right':
__pyx_t_18 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1012, __pyx_L1_error) __pyx_t_17 = (__pyx_t_18 != 0); if (__pyx_t_17) { /* … */ goto __pyx_L37; }
+1013: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][0]
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1013, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_carryover); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1013, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_16, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Multiply(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1013, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_contract_obj->name, __pyx_t_16) < 0)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
1014: else:
+1015: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1015, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1015, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__pyx_L37:;
1016:
+1017: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1017, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1017, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1017, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1018: private_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1019: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1019, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_14); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1019, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1020: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1020, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1020, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_14));
__pyx_t_14 = 0;
+1021: private_obj.carryover_rights[district_key] = {}
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1021, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_14) < 0)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1022: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1022, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_16); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1022, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1022, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1022, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1023: if contract_obj.type == 'right':
__pyx_t_17 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1023, __pyx_L1_error) __pyx_t_18 = (__pyx_t_17 != 0); if (__pyx_t_18) { /* … */ goto __pyx_L44; }
+1024: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][0]
__pyx_t_16 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1024, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_15, __pyx_n_u_carryover); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Multiply(__pyx_t_16, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1024, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1024, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_v_contract_obj->name, __pyx_t_3) < 0)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1025: else:
+1026: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1026, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1026, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L44:;
1027:
1028: ##Use reservoir/contract dictionary to develop
1029: ##a list linking individual districts to reservoirs,
1030: ##based on their individual contracts
+1031: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1031, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1031, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1031, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1032: district_obj.reservoir_contract = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_district_obj->reservoir_contract); __Pyx_DECREF(__pyx_v_district_obj->reservoir_contract); __pyx_v_district_obj->reservoir_contract = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1033: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1033, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_14); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1033, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1033, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1034: use_reservoir = 0
__pyx_v_use_reservoir = 0;
+1035: for contract_obj in self.reservoir_contract[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1035, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
__pyx_t_3 = __pyx_t_14; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
__pyx_t_19 = NULL;
} else {
__pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1035, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
for (;;) {
if (likely(!__pyx_t_19)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1035, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
} else {
if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1035, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
}
} else {
__pyx_t_14 = __pyx_t_19(__pyx_t_3);
if (unlikely(!__pyx_t_14)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1035, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_14);
}
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1036: for contract_key_dis in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1036, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_16); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1036, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key_dis, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__pyx_L52_break:;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1037: if contract_obj.name == contract_key_dis:
__pyx_t_18 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_v_contract_key_dis, Py_EQ)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1037, __pyx_L1_error) if (__pyx_t_18) { /* … */ }
+1038: use_reservoir = 1
__pyx_v_use_reservoir = 1;
+1039: break
goto __pyx_L52_break;
+1040: if use_reservoir == 1:
__pyx_t_18 = ((__pyx_v_use_reservoir == 1) != 0);
if (__pyx_t_18) {
/* … */
goto __pyx_L54;
}
+1041: district_obj.reservoir_contract[reservoir_obj.key] = 1
if (unlikely(__pyx_v_district_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1041, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_1) < 0)) __PYX_ERR(0, 1041, __pyx_L1_error)
1042: else:
+1043: district_obj.reservoir_contract[reservoir_obj.key] = 0
/*else*/ {
if (unlikely(__pyx_v_district_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1043, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_0) < 0)) __PYX_ERR(0, 1043, __pyx_L1_error)
}
__pyx_L54:;
1044:
+1045: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1045, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1045, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1045, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1046: private_obj.reservoir_contract = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->reservoir_contract); __Pyx_DECREF(__pyx_v_private_obj->reservoir_contract); __pyx_v_private_obj->reservoir_contract = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1047: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1047, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1047, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1047, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1048: use_reservoir = 0
__pyx_v_use_reservoir = 0;
+1049: for contract_obj in self.reservoir_contract[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1049, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_14 = __pyx_t_3; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0;
__pyx_t_19 = NULL;
} else {
__pyx_t_12 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_19 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1049, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_19)) {
if (likely(PyList_CheckExact(__pyx_t_14))) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1049, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1049, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_19(__pyx_t_14);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1049, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1050: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1050, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_13); __Pyx_INCREF(__pyx_t_16); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1050, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_3, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1051: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1051, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16));
__pyx_t_16 = 0;
+1052: for contract_key_dis in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1052, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_20 = 0;
for (;;) {
if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_20); __Pyx_INCREF(__pyx_t_15); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 1052, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_16, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key_dis, __pyx_t_15);
__pyx_t_15 = 0;
/* … */
}
__pyx_L64_break:;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+1053: if contract_obj.name == contract_key_dis:
__pyx_t_18 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_v_contract_key_dis, Py_EQ)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1053, __pyx_L1_error) if (__pyx_t_18) { /* … */ }
+1054: use_reservoir = 1
__pyx_v_use_reservoir = 1;
+1055: break
goto __pyx_L64_break;
+1056: if use_reservoir == 1:
__pyx_t_18 = ((__pyx_v_use_reservoir == 1) != 0);
if (__pyx_t_18) {
/* … */
goto __pyx_L66;
}
+1057: private_obj.reservoir_contract[reservoir_obj.key] = 1
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1057, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_1) < 0)) __PYX_ERR(0, 1057, __pyx_L1_error)
1058: else:
+1059: private_obj.reservoir_contract[reservoir_obj.key] = 0
/*else*/ {
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1059, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_0) < 0)) __PYX_ERR(0, 1059, __pyx_L1_error)
}
__pyx_L66:;
1060:
+1061: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1061, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1061, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1061, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1062: private_obj.reservoir_contract = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->reservoir_contract); __Pyx_DECREF(__pyx_v_private_obj->reservoir_contract); __pyx_v_private_obj->reservoir_contract = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1063: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1063, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_14); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1063, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1063, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1064: use_reservoir = 0
__pyx_v_use_reservoir = 0;
+1065: for contract_obj in self.reservoir_contract[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1065, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
__pyx_t_3 = __pyx_t_14; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
__pyx_t_19 = NULL;
} else {
__pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1065, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
for (;;) {
if (likely(!__pyx_t_19)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1065, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
} else {
if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1065, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
}
} else {
__pyx_t_14 = __pyx_t_19(__pyx_t_3);
if (unlikely(!__pyx_t_14)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1065, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_14);
}
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1066: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1066, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_13); __Pyx_INCREF(__pyx_t_16); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1066, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_14, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1067: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1067, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1067, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1067, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16));
__pyx_t_16 = 0;
+1068: for contract_key_dis in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1068, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_20 = 0;
for (;;) {
if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_20); __Pyx_INCREF(__pyx_t_15); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 1068, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_16, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1068, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key_dis, __pyx_t_15);
__pyx_t_15 = 0;
/* … */
}
__pyx_L76_break:;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+1069: if contract_obj.name == contract_key_dis:
__pyx_t_18 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_v_contract_key_dis, Py_EQ)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error) if (__pyx_t_18) { /* … */ }
+1070: use_reservoir = 1
__pyx_v_use_reservoir = 1;
+1071: break
goto __pyx_L76_break;
+1072: if use_reservoir == 1:
__pyx_t_18 = ((__pyx_v_use_reservoir == 1) != 0);
if (__pyx_t_18) {
/* … */
goto __pyx_L78;
}
+1073: private_obj.reservoir_contract[reservoir_obj.key] = 1
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1073, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_1) < 0)) __PYX_ERR(0, 1073, __pyx_L1_error)
1074: else:
+1075: private_obj.reservoir_contract[reservoir_obj.key] = 0
/*else*/ {
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1075, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->reservoir_contract, __pyx_v_reservoir_obj->key, __pyx_int_0) < 0)) __PYX_ERR(0, 1075, __pyx_L1_error)
}
__pyx_L78:;
1076:
1077: ##Contract-Reservoir Relationships (contracts are dictionary key, reservoirs are list objects)
+1078: self.contract_reservoir = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->contract_reservoir); __Pyx_DECREF(__pyx_v_self->contract_reservoir); __pyx_v_self->contract_reservoir = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1079: self.contract_reservoir['FR1'] = self.millerton
__pyx_t_1 = ((PyObject *)__pyx_v_self->millerton); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1079, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_FR1, __pyx_t_1) < 0)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1080: self.contract_reservoir['FR2'] = self.millerton
__pyx_t_1 = ((PyObject *)__pyx_v_self->millerton); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1080, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_FR2, __pyx_t_1) < 0)) __PYX_ERR(0, 1080, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1081: self.contract_reservoir['KRR'] = self.isabella
__pyx_t_1 = ((PyObject *)__pyx_v_self->isabella); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1081, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_KRR, __pyx_t_1) < 0)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1082: self.contract_reservoir['KGR'] = self.pineflat
__pyx_t_1 = ((PyObject *)__pyx_v_self->pineflat); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1082, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_KGR, __pyx_t_1) < 0)) __PYX_ERR(0, 1082, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1083: self.contract_reservoir['TRR'] = self.success
__pyx_t_1 = ((PyObject *)__pyx_v_self->success); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1083, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_TRR, __pyx_t_1) < 0)) __PYX_ERR(0, 1083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1084: self.contract_reservoir['WRR'] = self.kaweah
__pyx_t_1 = ((PyObject *)__pyx_v_self->kaweah); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1084, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_WRR, __pyx_t_1) < 0)) __PYX_ERR(0, 1084, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1085: self.contract_reservoir['SLS'] = self.sanluisstate
__pyx_t_1 = ((PyObject *)__pyx_v_self->sanluisstate); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1085, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_SLS, __pyx_t_1) < 0)) __PYX_ERR(0, 1085, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1086: self.contract_reservoir['SLF'] = self.sanluisfederal
__pyx_t_1 = ((PyObject *)__pyx_v_self->sanluisfederal); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1086, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_SLF, __pyx_t_1) < 0)) __PYX_ERR(0, 1086, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1087: self.contract_reservoir['ECH'] = self.sanluisfederal
__pyx_t_1 = ((PyObject *)__pyx_v_self->sanluisfederal); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1087, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_ECH, __pyx_t_1) < 0)) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1088: self.contract_reservoir['CVC'] = self.sanluisfederal
__pyx_t_1 = ((PyObject *)__pyx_v_self->sanluisfederal); __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1088, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_reservoir, __pyx_n_u_CVC, __pyx_t_1) < 0)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1089:
1090: ##Canal-Contract Relationships (canals are dictionary key, contracts are list objects)
+1091: self.canal_contract = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->canal_contract); __Pyx_DECREF(__pyx_v_self->canal_contract); __pyx_v_self->canal_contract = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1092: self.canal_contract['fkc'] = [self.friant1, self.friant2]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant1)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->friant1)); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant2)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->friant2)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1092, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_fkc, __pyx_t_1) < 0)) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1093: self.canal_contract['mdc'] = [self.friant1, self.friant2]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant1)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->friant1)); __Pyx_INCREF(((PyObject *)__pyx_v_self->friant2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->friant2)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->friant2)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1093, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_mdc, __pyx_t_1) < 0)) __PYX_ERR(0, 1093, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1094: self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]
__pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->swpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1094, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_1) < 0)) __PYX_ERR(0, 1094, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1095: self.canal_contract['knr'] = [self.kernriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriver)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1095, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_knr, __pyx_t_1) < 0)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1096: self.canal_contract['tlr'] = [self.tuleriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->tuleriver)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1096, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_tlr, __pyx_t_1) < 0)) __PYX_ERR(0, 1096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1097: self.canal_contract['kwr'] = [self.kaweahriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kaweahriver)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1097, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_kwr, __pyx_t_1) < 0)) __PYX_ERR(0, 1097, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1098: self.canal_contract['kgr'] = [self.kingsriver]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriver)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kingsriver)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1098, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_kgr, __pyx_t_1) < 0)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1099: self.canal_contract['xvc'] = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1099, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_xvc, __pyx_t_1) < 0)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1100:
1101: ##Contracts-Canal Relationships (which canals can be physically reached with contracts)
+1102: self.contract_turnouts = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->contract_turnouts); __Pyx_DECREF(__pyx_v_self->contract_turnouts); __pyx_v_self->contract_turnouts = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1103: self.contract_turnouts['friant1'] = ['fkc', 'mdc', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_fkc); __Pyx_GIVEREF(__pyx_n_u_fkc); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_fkc); __Pyx_INCREF(__pyx_n_u_mdc); __Pyx_GIVEREF(__pyx_n_u_mdc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_mdc); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1103, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_friant1, __pyx_t_1) < 0)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1104: self.contract_turnouts['friant2'] = ['fkc', 'mdc', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_fkc); __Pyx_GIVEREF(__pyx_n_u_fkc); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_fkc); __Pyx_INCREF(__pyx_n_u_mdc); __Pyx_GIVEREF(__pyx_n_u_mdc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_mdc); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1104, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_friant2, __pyx_t_1) < 0)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1105: self.contract_turnouts['tableA'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_caa); __Pyx_GIVEREF(__pyx_n_u_caa); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_caa); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1105, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_tableA, __pyx_t_1) < 0)) __PYX_ERR(0, 1105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1106: self.contract_turnouts['cvpdelta'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_caa); __Pyx_GIVEREF(__pyx_n_u_caa); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_caa); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1106, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_cvpdelta, __pyx_t_1) < 0)) __PYX_ERR(0, 1106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1107: self.contract_turnouts['exchange'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_caa); __Pyx_GIVEREF(__pyx_n_u_caa); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_caa); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1107, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_exchange, __pyx_t_1) < 0)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1108: self.contract_turnouts['cvc'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_caa); __Pyx_GIVEREF(__pyx_n_u_caa); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_caa); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1108, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_cvc, __pyx_t_1) < 0)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1109: self.contract_turnouts['kern'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_caa); __Pyx_GIVEREF(__pyx_n_u_caa); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_caa); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_xvc); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_kbc); __Pyx_INCREF(__pyx_n_u_aec); __Pyx_GIVEREF(__pyx_n_u_aec); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_aec); __Pyx_INCREF(__pyx_n_u_knr); __Pyx_GIVEREF(__pyx_n_u_knr); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_knr); __Pyx_INCREF(__pyx_n_u_knc); __Pyx_GIVEREF(__pyx_n_u_knc); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_knc); __Pyx_INCREF(__pyx_n_u_gsl); __Pyx_GIVEREF(__pyx_n_u_gsl); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gsl); __Pyx_INCREF(__pyx_n_u_cwy); __Pyx_GIVEREF(__pyx_n_u_cwy); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_cwy); __Pyx_INCREF(__pyx_n_u_lrd); __Pyx_GIVEREF(__pyx_n_u_lrd); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_lrd); __Pyx_INCREF(__pyx_n_u_bly); __Pyx_GIVEREF(__pyx_n_u_bly); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_bly); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1109, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_kern, __pyx_t_1) < 0)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1110: self.contract_turnouts['tule'] = ['kwr', 'fkc']
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_kwr); __Pyx_GIVEREF(__pyx_n_u_kwr); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_kwr); __Pyx_INCREF(__pyx_n_u_fkc); __Pyx_GIVEREF(__pyx_n_u_fkc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_fkc); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1110, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_tule, __pyx_t_1) < 0)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1111: self.contract_turnouts['kaweah'] = ['tlr', 'fkc']
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_tlr); __Pyx_GIVEREF(__pyx_n_u_tlr); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_tlr); __Pyx_INCREF(__pyx_n_u_fkc); __Pyx_GIVEREF(__pyx_n_u_fkc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_fkc); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1111, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_kaweah, __pyx_t_1) < 0)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1112: self.contract_turnouts['kings'] = ['kgr', 'fkc']
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_kgr); __Pyx_GIVEREF(__pyx_n_u_kgr); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_kgr); __Pyx_INCREF(__pyx_n_u_fkc); __Pyx_GIVEREF(__pyx_n_u_fkc); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_fkc); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1112, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->contract_turnouts, __pyx_n_u_kings, __pyx_t_1) < 0)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1113:
1114:
1115: ##Reservoir-Canal Relationships (reservoirs are dictionary key, canals are list objects)
+1116: self.reservoir_canal = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->reservoir_canal); __Pyx_DECREF(__pyx_v_self->reservoir_canal); __pyx_v_self->reservoir_canal = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1117: self.reservoir_canal['SLS'] = [self.calaqueduct]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1117, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_SLS, __pyx_t_1) < 0)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1118: self.reservoir_canal['SLF'] = [self.calaqueduct]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1118, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_SLF, __pyx_t_1) < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1119: self.reservoir_canal['SNL'] = [self.calaqueduct]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->calaqueduct)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1119, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_SNL, __pyx_t_1) < 0)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1120: self.reservoir_canal['MIL'] = [self.fkc, self.madera]
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->madera)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->madera)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->madera)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1120, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_MIL, __pyx_t_1) < 0)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1121: self.reservoir_canal['ISB'] = [self.kernriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriverchannel)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1121, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_ISB, __pyx_t_1) < 0)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1122: self.reservoir_canal['SUC'] = [self.tuleriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->tuleriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tuleriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->tuleriverchannel)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1122, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_SUC, __pyx_t_1) < 0)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1123: self.reservoir_canal['KWH'] = [self.kaweahriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweahriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kaweahriverchannel)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1123, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_KWH, __pyx_t_1) < 0)) __PYX_ERR(0, 1123, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1124: self.reservoir_canal['PFT'] = [self.kingsriverchannel]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kingsriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kingsriverchannel)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kingsriverchannel)); if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1124, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->reservoir_canal, __pyx_n_u_PFT, __pyx_t_1) < 0)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1125:
+1126: self.canal_reservoir = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->canal_reservoir); __Pyx_DECREF(__pyx_v_self->canal_reservoir); __pyx_v_self->canal_reservoir = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1127: self.canal_reservoir['fkc'] = [self.millerton]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->millerton)); if (unlikely(__pyx_v_self->canal_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1127, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_reservoir, __pyx_n_u_fkc, __pyx_t_1) < 0)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1128: self.canal_reservoir['caa'] = [self.sanluisstate]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluisstate)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluisstate)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->sanluisstate)); if (unlikely(__pyx_v_self->canal_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1128, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_reservoir, __pyx_n_u_caa, __pyx_t_1) < 0)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1129: self.canal_reservoir['knr'] = [self.isabella]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->isabella)); if (unlikely(__pyx_v_self->canal_reservoir == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1129, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_reservoir, __pyx_n_u_knr, __pyx_t_1) < 0)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1130: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1130, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1130, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1130, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1130, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1131: reservoir_obj.total_capacity = 0.0
__pyx_v_reservoir_obj->total_capacity = 0.0;
+1132: for canal_obj in self.reservoir_canal[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1132, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
__pyx_t_19 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1132, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_19)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1132, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1132, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_19(__pyx_t_3);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1132, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 1132, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1133: reservoir_obj.total_capacity += canal_obj.capacity['normal'][0]
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_reservoir_obj->total_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_canal_obj->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1133, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_canal_obj->capacity, __pyx_n_u_normal); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_reservoir_obj->total_capacity = __pyx_t_21;
1134:
+1135: self.pumping_turnback = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->pumping_turnback); __Pyx_DECREF(__pyx_v_self->pumping_turnback); __pyx_v_self->pumping_turnback = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1136: self.allocation_losses = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->allocation_losses); __Pyx_DECREF(__pyx_v_self->allocation_losses); __pyx_v_self->allocation_losses = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1137: for z in ['SLS', 'SLF', 'MIL', 'ISB', 'SUC', 'KWH', 'PFT']:
__pyx_t_1 = __pyx_tuple__21; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 7) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_z, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__21 = PyTuple_Pack(7, __pyx_n_u_SLS, __pyx_n_u_SLF, __pyx_n_u_MIL, __pyx_n_u_ISB, __pyx_n_u_SUC, __pyx_n_u_KWH, __pyx_n_u_PFT); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 1137, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21);
+1138: self.pumping_turnback[z] = 0.0
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->pumping_turnback, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1138, __pyx_L1_error)
+1139: self.allocation_losses[z] = 0.0
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1139, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->allocation_losses, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1139, __pyx_L1_error)
1140: ####################################################################################################################
1141: #####################################################################################################################
1142:
1143:
1144: #####################################################################################################################
1145: ############################# Pre processing functions #######################################################
1146: #####################################################################################################################
1147:
+1148: def set_sensitivity_factors(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_25set_sensitivity_factors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_25set_sensitivity_factors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_sensitivity_factors (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_24set_sensitivity_factors(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_24set_sensitivity_factors(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
PyObject *__pyx_v_sensitivity_factor = NULL;
PyObject *__pyx_v_index = NULL;
PyObject *__pyx_9genexpr20__pyx_v_x = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_sensitivity_factors", 0);
__Pyx_TraceCall("set_sensitivity_factors", __pyx_f[0], 1148, 0, __PYX_ERR(0, 1148, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_sensitivity_factors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_sensitivity_factor);
__Pyx_XDECREF(__pyx_v_index);
__Pyx_XDECREF(__pyx_9genexpr20__pyx_v_x);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1149: for sensitivity_factor in self.sensitivity_factors['district_factor_list']:
if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1149, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_district_factor_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1149, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1149, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1149, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1149, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XDECREF_SET(__pyx_v_sensitivity_factor, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1150: # set model sensitivity factors equal to sample values from input file
+1151: index = [x == sensitivity_factor for x in self.sensitivity_sample_names]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1151, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->sensitivity_sample_names == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1151, __pyx_L7_error)
}
__pyx_t_5 = __pyx_v_self->sensitivity_sample_names; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1151, __pyx_L7_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1151, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_9genexpr20__pyx_v_x, __pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = PyObject_RichCompare(__pyx_9genexpr20__pyx_v_x, __pyx_v_sensitivity_factor, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1151, __pyx_L7_error)
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 1151, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_9genexpr20__pyx_v_x); __pyx_9genexpr20__pyx_v_x = 0;
goto __pyx_L10_exit_scope;
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_9genexpr20__pyx_v_x); __pyx_9genexpr20__pyx_v_x = 0;
goto __pyx_L1_error;
__pyx_L10_exit_scope:;
} /* exit inner scope */
__Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1);
__pyx_t_1 = 0;
+1152: index = np.where(index)[0][0]
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_where); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_v_index) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_index); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_1); __pyx_t_1 = 0;
+1153: self.sensitivity_factors[sensitivity_factor]['realization'] = self.sensitivity_sample[index]
if (unlikely(__pyx_v_self->sensitivity_sample == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1153, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_sample, __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1153, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_v_sensitivity_factor); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_realization, __pyx_t_1) < 0)) __PYX_ERR(0, 1153, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1154:
1155:
+1156: def find_running_WYI(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_27find_running_WYI(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_27find_running_WYI(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_running_WYI (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_26find_running_WYI(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_26find_running_WYI(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_lastYearSRI = NULL;
PyObject *__pyx_v_lastYearSJI = NULL;
PyObject *__pyx_v_startMonth = NULL;
PyObject *__pyx_v_startYear = NULL;
PyObject *__pyx_v_rainflood_sac_obs = NULL;
PyObject *__pyx_v_snowflood_sac_obs = NULL;
PyObject *__pyx_v_rainflood_sj_obs = NULL;
PyObject *__pyx_v_snowflood_sj_obs = NULL;
CYTHON_UNUSED long __pyx_v_index_exceedence;
PyObject *__pyx_v_reservoir_list = NULL;
PyObject *__pyx_v_sac_list = NULL;
PyObject *__pyx_v_sj_list = NULL;
long __pyx_v_t;
PyObject *__pyx_v_year_index = NULL;
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_da = NULL;
PyObject *__pyx_v_dowy = NULL;
long __pyx_v_index_exceedence_sac;
CYTHON_UNUSED long __pyx_v_index_exceedence_sj;
PyObject *__pyx_v_res_rain_forecast = NULL;
PyObject *__pyx_v_sac_rain = NULL;
PyObject *__pyx_v_res_snow_forecast = NULL;
PyObject *__pyx_v_sac_snow = NULL;
PyObject *__pyx_v_sj_rain = NULL;
PyObject *__pyx_v_sj_snow = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_running_WYI", 0);
__Pyx_TraceCall("find_running_WYI", __pyx_f[0], 1156, 0, __PYX_ERR(0, 1156, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_running_WYI", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_lastYearSRI);
__Pyx_XDECREF(__pyx_v_lastYearSJI);
__Pyx_XDECREF(__pyx_v_startMonth);
__Pyx_XDECREF(__pyx_v_startYear);
__Pyx_XDECREF(__pyx_v_rainflood_sac_obs);
__Pyx_XDECREF(__pyx_v_snowflood_sac_obs);
__Pyx_XDECREF(__pyx_v_rainflood_sj_obs);
__Pyx_XDECREF(__pyx_v_snowflood_sj_obs);
__Pyx_XDECREF(__pyx_v_reservoir_list);
__Pyx_XDECREF(__pyx_v_sac_list);
__Pyx_XDECREF(__pyx_v_sj_list);
__Pyx_XDECREF(__pyx_v_year_index);
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_da);
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_res_rain_forecast);
__Pyx_XDECREF(__pyx_v_sac_rain);
__Pyx_XDECREF(__pyx_v_res_snow_forecast);
__Pyx_XDECREF(__pyx_v_sac_snow);
__Pyx_XDECREF(__pyx_v_sj_rain);
__Pyx_XDECREF(__pyx_v_sj_snow);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1157: cdef Reservoir reservoir_obj
1158:
1159: ###Pre-processing function
1160: ##Finds the 8 River, Sacramento, and San Joaquin indicies based on flow projections
+1161: lastYearSRI = 10.26 # WY 1996
__Pyx_INCREF(__pyx_float_10_26);
__pyx_v_lastYearSRI = __pyx_float_10_26;
+1162: lastYearSJI = 4.12 # WY 1996
__Pyx_INCREF(__pyx_float_4_12);
__pyx_v_lastYearSJI = __pyx_float_4_12;
+1163: startMonth = self.month[0]
if (unlikely(__pyx_v_self->month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1163, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->month, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_startMonth = __pyx_t_1;
__pyx_t_1 = 0;
+1164: startYear = self.starting_year
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_startYear = __pyx_t_1; __pyx_t_1 = 0;
+1165: rainflood_sac_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_rainflood_sac_obs = __pyx_float_0_0;
+1166: snowflood_sac_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_snowflood_sac_obs = __pyx_float_0_0;
+1167: rainflood_sj_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_rainflood_sj_obs = __pyx_float_0_0;
+1168: snowflood_sj_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_snowflood_sj_obs = __pyx_float_0_0;
+1169: index_exceedence = 2
__pyx_v_index_exceedence = 2;
+1170: reservoir_list = [self.shasta, self.folsom, self.oroville, self.yuba, self.newmelones, self.donpedro, self.exchequer, self.millerton]
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_self->exchequer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_v_self->millerton)); __pyx_v_reservoir_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1171: sac_list = [self.shasta, self.folsom, self.oroville, self.yuba]
__pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->yuba)); __pyx_v_sac_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1172: sj_list = [self.newmelones, self.donpedro, self.exchequer, self.millerton]
__pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->exchequer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->millerton)); __pyx_v_sj_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1173: for t in range(0,self.T):
__pyx_t_2 = __pyx_v_self->T;
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_t = __pyx_t_4;
+1174: year_index = self.year[t] - startYear
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1174, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->year, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1174, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_Subtract(__pyx_t_1, __pyx_v_startYear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1174, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_year_index, __pyx_t_5);
__pyx_t_5 = 0;
+1175: m = self.month[t]
if (unlikely(__pyx_v_self->month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1175, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->month, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_5);
__pyx_t_5 = 0;
+1176: da = self.day_month[t]
if (unlikely(__pyx_v_self->day_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1176, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->day_month, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_da, __pyx_t_5);
__pyx_t_5 = 0;
+1177: dowy = self.dowy[t]
if (unlikely(__pyx_v_self->dowy == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1177, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->dowy, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_5);
__pyx_t_5 = 0;
+1178: index_exceedence_sac = 9
__pyx_v_index_exceedence_sac = 9;
+1179: index_exceedence_sj = 5
__pyx_v_index_exceedence_sj = 5;
1180: ##8 River Index
+1181: for reservoir_obj in reservoir_list:
__pyx_t_5 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1181, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1181, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1182: self.delta.eri[m-startMonth + year_index*12] + reservoir_obj.fnf[t]*1000
if (unlikely(__pyx_v_self->delta->eri == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1182, __pyx_L1_error)
}
__pyx_t_1 = PyNumber_Subtract(__pyx_v_m, __pyx_v_startMonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyNumber_Multiply(__pyx_v_year_index, __pyx_int_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->eri, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_reservoir_obj->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1182, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_int_1000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1182, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
1183: ####################Sacramento Index#############################################################################################
1184: ##Individual Rainflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1185: if m >=10:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1185, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_9) { /* … */ goto __pyx_L7; }
+1186: self.delta.forecastSJI[t] = lastYearSJI
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1186, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_self->delta->forecastSJI, __pyx_v_t, __pyx_v_lastYearSJI, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 1186, __pyx_L1_error)
+1187: self.delta.forecastSRI[t] = lastYearSRI
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1187, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_self->delta->forecastSRI, __pyx_v_t, __pyx_v_lastYearSRI, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 1187, __pyx_L1_error)
1188: else:
+1189: res_rain_forecast = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_res_rain_forecast, __pyx_float_0_0);
+1190: for reservoir_obj in sac_list:
__pyx_t_5 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1190, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_8)); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1191: res_rain_forecast += reservoir_obj.rainflood_fnf[t] + reservoir_obj.rainfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
if (unlikely(__pyx_v_reservoir_obj->rainflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1191, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->rainflood_fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(__pyx_v_reservoir_obj->rainfnf_stds == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1191, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->rainfnf_stds, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_res_rain_forecast, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_t_7);
__pyx_t_7 = 0;
1192: ##SAC TOTAL RAIN
+1193: if m >= 4 and m < 10:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1193, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L11_bool_binop_done; } __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1193, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L11_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L10; }
+1194: sac_rain = rainflood_sac_obs
__Pyx_INCREF(__pyx_v_rainflood_sac_obs); __Pyx_XDECREF_SET(__pyx_v_sac_rain, __pyx_v_rainflood_sac_obs);
1195: else:
+1196: sac_rain = max(rainflood_sac_obs, res_rain_forecast)
/*else*/ {
__Pyx_INCREF(__pyx_v_res_rain_forecast);
__pyx_t_5 = __pyx_v_res_rain_forecast;
__Pyx_INCREF(__pyx_v_rainflood_sac_obs);
__pyx_t_7 = __pyx_v_rainflood_sac_obs;
__pyx_t_8 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1196, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_9) {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_10 = __pyx_t_5;
} else {
__Pyx_INCREF(__pyx_t_7);
__pyx_t_10 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_t_10;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF_SET(__pyx_v_sac_rain, __pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L10:;
1197: ##Individual Snowflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1198: res_snow_forecast = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_res_snow_forecast, __pyx_float_0_0);
+1199: for reservoir_obj in sac_list:
__pyx_t_5 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_10); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1199, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_10)); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1200: res_snow_forecast += reservoir_obj.snowflood_fnf[t] + reservoir_obj.snowfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
if (unlikely(__pyx_v_reservoir_obj->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1200, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->snowflood_fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__pyx_v_reservoir_obj->snowfnf_stds == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1200, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->snowfnf_stds, __pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Add(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_res_snow_forecast, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_t_8);
__pyx_t_8 = 0;
1201: ##SAC TOTAL SNOW
+1202: if m >= 8 and m < 10:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1202, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L16_bool_binop_done; } __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1202, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L16_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L15; }
+1203: sac_snow = snowflood_sac_obs
__Pyx_INCREF(__pyx_v_snowflood_sac_obs); __Pyx_XDECREF_SET(__pyx_v_sac_snow, __pyx_v_snowflood_sac_obs);
1204: else:
+1205: sac_snow = max(snowflood_sac_obs, res_snow_forecast)
/*else*/ {
__Pyx_INCREF(__pyx_v_res_snow_forecast);
__pyx_t_5 = __pyx_v_res_snow_forecast;
__Pyx_INCREF(__pyx_v_snowflood_sac_obs);
__pyx_t_8 = __pyx_v_snowflood_sac_obs;
__pyx_t_10 = PyObject_RichCompare(__pyx_t_5, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1205, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1205, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_9) {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_1 = __pyx_t_5;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_sac_snow, __pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L15:;
1206: #######################################################################################################################################
1207: #####################San Joaquin Index################################################################################################
1208: ##Individual Rainflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1209: res_rain_forecast = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_float_0_0);
+1210: for reservoir_obj in sj_list:
__pyx_t_5 = __pyx_v_sj_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1210, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1210, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1211: res_rain_forecast += reservoir_obj.rainflood_fnf[t] + reservoir_obj.rainfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
if (unlikely(__pyx_v_reservoir_obj->rainflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1211, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->rainflood_fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_reservoir_obj->rainfnf_stds == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1211, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->rainfnf_stds, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_res_rain_forecast, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_t_10);
__pyx_t_10 = 0;
1212: ##SJ TOTAL RAIN
+1213: if m >= 4 and m < 10:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L21_bool_binop_done; } __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L21_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L20; }
+1214: sj_rain = rainflood_sj_obs
__Pyx_INCREF(__pyx_v_rainflood_sj_obs); __Pyx_XDECREF_SET(__pyx_v_sj_rain, __pyx_v_rainflood_sj_obs);
1215: else:
+1216: sj_rain = max(rainflood_sj_obs, res_rain_forecast)
/*else*/ {
__Pyx_INCREF(__pyx_v_res_rain_forecast);
__pyx_t_5 = __pyx_v_res_rain_forecast;
__Pyx_INCREF(__pyx_v_rainflood_sj_obs);
__pyx_t_10 = __pyx_v_rainflood_sj_obs;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1216, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1216, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_9) {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_7 = __pyx_t_5;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_7 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_t_7;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_sj_rain, __pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L20:;
1217: ##Individual Snowflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1218: res_snow_forecast = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_float_0_0);
+1219: for reservoir_obj in sj_list:
__pyx_t_5 = __pyx_v_sj_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1219, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1219, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_7)); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1220: res_snow_forecast += reservoir_obj.snowflood_fnf[t] + reservoir_obj.snowfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
if (unlikely(__pyx_v_reservoir_obj->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1220, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->snowflood_fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_reservoir_obj->snowfnf_stds == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1220, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->snowfnf_stds, __pyx_v_dowy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_res_snow_forecast, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_t_1);
__pyx_t_1 = 0;
1221: ##SAC TOTAL SNOW
+1222: if m >= 8 and m < 10:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1222, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L26_bool_binop_done; } __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1222, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L26_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L25; }
+1223: sj_snow = snowflood_sj_obs
__Pyx_INCREF(__pyx_v_snowflood_sj_obs); __Pyx_XDECREF_SET(__pyx_v_sj_snow, __pyx_v_snowflood_sj_obs);
1224: else:
+1225: sj_snow = max(snowflood_sj_obs, res_snow_forecast)
/*else*/ {
__Pyx_INCREF(__pyx_v_res_snow_forecast);
__pyx_t_5 = __pyx_v_res_snow_forecast;
__Pyx_INCREF(__pyx_v_snowflood_sj_obs);
__pyx_t_1 = __pyx_v_snowflood_sj_obs;
__pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1225, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_9) {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_8 = __pyx_t_5;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_8 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF_SET(__pyx_v_sj_snow, __pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L25:;
1226:
1227: ###INDEX FORECASTS########################################################################################################################
+1228: self.delta.forecastSJI[t] = min(lastYearSJI,4.5)*0.2 + sj_rain*0.2 + sj_snow*0.6
__pyx_t_12 = 4.5;
__Pyx_INCREF(__pyx_v_lastYearSJI);
__pyx_t_5 = __pyx_v_lastYearSJI;
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_9) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_8 = __pyx_t_5;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_float_0_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_v_sj_rain, __pyx_float_0_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_v_sj_snow, __pyx_float_0_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1228, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_self->delta->forecastSJI, __pyx_v_t, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 1228, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1229: self.delta.forecastSRI[t] = min(lastYearSRI,10)*0.3 + sac_rain*0.3 + sac_snow*0.4
__pyx_t_13 = 10;
__Pyx_INCREF(__pyx_v_lastYearSRI);
__pyx_t_5 = __pyx_v_lastYearSRI;
__pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_9) {
__pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_8 = __pyx_t_5;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_float_0_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_v_sac_rain, __pyx_float_0_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_v_sac_snow, __pyx_float_0_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_self->delta->forecastSRI, __pyx_v_t, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_L7:;
1230:
1231: ##REAL-TIME OBSERVATIONS
+1232: if m >= 10 or m <= 3:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1232, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L29_bool_binop_done; } __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_3, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1232, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L29_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L28; }
+1233: rainflood_sac_obs += self.shasta.fnf[t] + self.oroville.fnf[t] + self.folsom.fnf[t] + self.yuba.fnf[t]
if (unlikely(__pyx_v_self->shasta->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1233, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->shasta->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_self->oroville->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1233, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->oroville->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->folsom->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1233, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->folsom->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->yuba->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1233, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->yuba->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_rainflood_sac_obs, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_rainflood_sac_obs, __pyx_t_8);
__pyx_t_8 = 0;
+1234: rainflood_sj_obs += self.newmelones.fnf[t] + self.donpedro.fnf[t] + self.exchequer.fnf[t] + self.millerton.fnf[t]
if (unlikely(__pyx_v_self->newmelones->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1234, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->newmelones->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(__pyx_v_self->donpedro->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1234, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->donpedro->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_Add(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_self->exchequer->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1234, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->exchequer->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PyNumber_Add(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_self->millerton->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1234, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->millerton->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_Add(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_rainflood_sj_obs, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_rainflood_sj_obs, __pyx_t_1);
__pyx_t_1 = 0;
+1235: elif m < 8:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1235, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { /* … */ } __pyx_L28:;
+1236: snowflood_sac_obs += self.shasta.fnf[t] + self.oroville.fnf[t] + self.folsom.fnf[t] + self.yuba.fnf[t]
if (unlikely(__pyx_v_self->shasta->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1236, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->shasta->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->oroville->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1236, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->oroville->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_v_self->folsom->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1236, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->folsom->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_v_self->yuba->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1236, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->yuba->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_snowflood_sac_obs, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_snowflood_sac_obs, __pyx_t_5);
__pyx_t_5 = 0;
+1237: snowflood_sj_obs += self.newmelones.fnf[t] + self.donpedro.fnf[t] + self.exchequer.fnf[t] + self.millerton.fnf[t]
if (unlikely(__pyx_v_self->newmelones->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1237, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_self->newmelones->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_self->donpedro->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1237, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->donpedro->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->exchequer->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1237, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->exchequer->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->millerton->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1237, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_self->millerton->fnf, __pyx_v_t, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_snowflood_sj_obs, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1237, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_snowflood_sj_obs, __pyx_t_8);
__pyx_t_8 = 0;
1238:
1239: ##SAVE INDEX FROM EACH YEAR (FOR USE IN NEXT YEAR'S FORECAST
+1240: if m == 9 and da == 30:
__pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L32_bool_binop_done; } __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_30, 30, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_11; __pyx_L32_bool_binop_done:; if (__pyx_t_9) { /* … */ } }
+1241: lastYearSRI = 0.3*min(lastYearSRI,10) + 0.3*rainflood_sac_obs + 0.4*snowflood_sac_obs
__pyx_t_13 = 10;
__Pyx_INCREF(__pyx_v_lastYearSRI);
__pyx_t_8 = __pyx_v_lastYearSRI;
__pyx_t_5 = __Pyx_PyInt_From_long(__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_9) {
__pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_float_0_3, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_float_0_3, __pyx_v_rainflood_sac_obs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyNumber_Add(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_float_0_4, __pyx_v_snowflood_sac_obs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_lastYearSRI, __pyx_t_8);
__pyx_t_8 = 0;
+1242: lastYearSJI = 0.2*min(lastYearSJI,4.5) + 0.2*rainflood_sj_obs + 0.6*snowflood_sj_obs
__pyx_t_12 = 4.5;
__Pyx_INCREF(__pyx_v_lastYearSJI);
__pyx_t_8 = __pyx_v_lastYearSJI;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_9) {
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_float_0_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_float_0_2, __pyx_v_rainflood_sj_obs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_Add(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_float_0_6, __pyx_v_snowflood_sj_obs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PyNumber_Add(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_lastYearSJI, __pyx_t_8);
__pyx_t_8 = 0;
+1243: rainflood_sac_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_rainflood_sac_obs, __pyx_float_0_0);
+1244: snowflood_sac_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_snowflood_sac_obs, __pyx_float_0_0);
+1245: rainflood_sj_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_rainflood_sj_obs, __pyx_float_0_0);
+1246: snowflood_sj_obs = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_snowflood_sj_obs, __pyx_float_0_0);
1247: # df_wyi = pd.DataFrame()
1248: # df_wyi['SRI'] = pd.Series(self.delta.forecastSRI, index = self.index)
1249: # df_wyi['SJI'] = pd.Series(self.delta.forecastSJI, index = self.index)
1250: # df_wyi.to_csv(self.results_folder + '/water_year_index_simulation.csv')
1251:
1252:
+1253: def predict_delta_gains(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_29predict_delta_gains(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_29predict_delta_gains(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("predict_delta_gains (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_28predict_delta_gains(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_28predict_delta_gains(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_gains_sac_short = NULL;
PyObject *__pyx_v_gains_sj_short = NULL;
PyObject *__pyx_v_eastside_streams_short = NULL;
PyObject *__pyx_v_depletions_short = NULL;
PyObject *__pyx_v_sac_list = NULL;
PyObject *__pyx_v_numYears_short = NULL;
PyObject *__pyx_v_monthly_gains = NULL;
CYTHON_UNUSED int __pyx_v_startYear;
CYTHON_UNUSED double __pyx_v_prev_gains;
PyObject *__pyx_v_prev_fnf = NULL;
PyObject *__pyx_v_t = NULL;
PyObject *__pyx_v_da = NULL;
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_dowy = NULL;
PyObject *__pyx_v_wateryear = NULL;
PyObject *__pyx_v_this_day_fnf = NULL;
PyObject *__pyx_v_fnf_off = NULL;
PyObject *__pyx_v_this_day_gains = NULL;
PyObject *__pyx_v_min_release = NULL;
PyObject *__pyx_v_gauge_min = NULL;
PyObject *__pyx_v_volume_constraint = NULL;
PyObject *__pyx_v_flow_ratio_constraint = NULL;
PyObject *__pyx_v_state_pumping = NULL;
PyObject *__pyx_v_fed_pumping = NULL;
PyObject *__pyx_v_pumping_constraint = NULL;
long __pyx_v_x;
long __pyx_v_mm;
PyObject *__pyx_v_one_year_runfnf = NULL;
PyObject *__pyx_v_monthly_gains_predict = NULL;
PyObject *__pyx_v_yy = NULL;
PyObject *__pyx_v_coef = NULL;
PyObject *__pyx_9genexpr21__pyx_v__ = NULL;
PyObject *__pyx_9genexpr22__pyx_v__ = NULL;
CYTHON_UNUSED long __pyx_9genexpr23__pyx_v_j;
CYTHON_UNUSED PyObject *__pyx_9genexpr24__pyx_v_i = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("predict_delta_gains", 0);
__Pyx_TraceCall("predict_delta_gains", __pyx_f[0], 1253, 0, __PYX_ERR(0, 1253, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("calfews_src.model_cy.Model.predict_delta_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_gains_sac_short);
__Pyx_XDECREF(__pyx_v_gains_sj_short);
__Pyx_XDECREF(__pyx_v_eastside_streams_short);
__Pyx_XDECREF(__pyx_v_depletions_short);
__Pyx_XDECREF(__pyx_v_sac_list);
__Pyx_XDECREF(__pyx_v_numYears_short);
__Pyx_XDECREF(__pyx_v_monthly_gains);
__Pyx_XDECREF(__pyx_v_prev_fnf);
__Pyx_XDECREF(__pyx_v_t);
__Pyx_XDECREF(__pyx_v_da);
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_wateryear);
__Pyx_XDECREF(__pyx_v_this_day_fnf);
__Pyx_XDECREF(__pyx_v_fnf_off);
__Pyx_XDECREF(__pyx_v_this_day_gains);
__Pyx_XDECREF(__pyx_v_min_release);
__Pyx_XDECREF(__pyx_v_gauge_min);
__Pyx_XDECREF(__pyx_v_volume_constraint);
__Pyx_XDECREF(__pyx_v_flow_ratio_constraint);
__Pyx_XDECREF(__pyx_v_state_pumping);
__Pyx_XDECREF(__pyx_v_fed_pumping);
__Pyx_XDECREF(__pyx_v_pumping_constraint);
__Pyx_XDECREF(__pyx_v_one_year_runfnf);
__Pyx_XDECREF(__pyx_v_monthly_gains_predict);
__Pyx_XDECREF(__pyx_v_yy);
__Pyx_XDECREF(__pyx_v_coef);
__Pyx_XDECREF(__pyx_9genexpr21__pyx_v__);
__Pyx_XDECREF(__pyx_9genexpr22__pyx_v__);
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_i);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1254: cdef Reservoir reservoir_obj
1255:
1256: ##this function uses a regression to find expected 'unstored' flows coming to the
1257: ##delta, to better project flow into San Luis
+1258: gains_sac_short = self.df_short[0].SAC_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1258, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SAC_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_gains_sac_short = __pyx_t_3;
__pyx_t_3 = 0;
+1259: gains_sj_short = self.df_short[0].SJ_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1259, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_SJ_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1259, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1259, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_gains_sj_short = __pyx_t_2;
__pyx_t_2 = 0;
+1260: eastside_streams_short = self.df_short[0].EAST_gains * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1260, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EAST_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1260, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_eastside_streams_short = __pyx_t_1;
__pyx_t_1 = 0;
+1261: depletions_short = self.df_short[0].delta_depletions * cfs_tafd
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1261, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_delta_depletions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_depletions_short = __pyx_t_3;
__pyx_t_3 = 0;
1262:
+1263: sac_list = [self.shasta, self.folsom, self.oroville, self.yuba]
__pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyList_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyList_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyList_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->yuba)); __pyx_v_sac_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1264: for reservoir_obj in sac_list:
__pyx_t_3 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1264, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1264, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1265: reservoir_obj.fnf_short = [_ / 1000000.0 for _ in self.df_short[0]['%s_fnf'% reservoir_obj.key].values]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1265, __pyx_L7_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyUnicode_Format(__pyx_kp_u_s_fnf, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1265, __pyx_L7_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1265, __pyx_L7_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1265, __pyx_L7_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_6);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1265, __pyx_L7_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_9genexpr21__pyx_v__, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyFloat_TrueDivideObjC(__pyx_9genexpr21__pyx_v__, __pyx_float_1000000_0, 1000000.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 1265, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_9genexpr21__pyx_v__); __pyx_9genexpr21__pyx_v__ = 0;
goto __pyx_L10_exit_scope;
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_9genexpr21__pyx_v__); __pyx_9genexpr21__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L10_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_reservoir_obj->fnf_short);
__Pyx_DECREF(__pyx_v_reservoir_obj->fnf_short);
__pyx_v_reservoir_obj->fnf_short = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1266: reservoir_obj.downstream_short = [_ * cfs_tafd for _ in self.df_short[0]['%s_gains'% reservoir_obj.key].values]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->df_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1266, __pyx_L13_error)
}
__pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_self->df_short, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = PyUnicode_Format(__pyx_kp_u_s_gains, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1266, __pyx_L13_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1266, __pyx_L13_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1266, __pyx_L13_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_2);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1266, __pyx_L13_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_9genexpr22__pyx_v__, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyNumber_Multiply(__pyx_9genexpr22__pyx_v__, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 1266, __pyx_L13_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr22__pyx_v__); __pyx_9genexpr22__pyx_v__ = 0;
goto __pyx_L16_exit_scope;
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_9genexpr22__pyx_v__); __pyx_9genexpr22__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L16_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_reservoir_obj->downstream_short);
__Pyx_DECREF(__pyx_v_reservoir_obj->downstream_short);
__pyx_v_reservoir_obj->downstream_short = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
1267:
1268: ##########################################################################################
1269: #Initialize gains matricies
1270: ##Unstored flow will be regressed against total FNF expected in that year
+1271: numYears_short = self.short_number_years
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->short_number_years); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_numYears_short = __pyx_t_3; __pyx_t_3 = 0;
+1272: self.running_fnf = [[0.0 for i in range(numYears_short)] for j in range(365)]
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
for (__pyx_t_9 = 0; __pyx_t_9 < 0x16D; __pyx_t_9+=1) {
__pyx_9genexpr23__pyx_v_j = __pyx_t_9;
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1272, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1272, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1272, __pyx_L21_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1272, __pyx_L21_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1272, __pyx_L21_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
} else {
__pyx_t_2 = __pyx_t_8(__pyx_t_6);
if (unlikely(!__pyx_t_2)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1272, __pyx_L21_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_XDECREF_SET(__pyx_9genexpr24__pyx_v_i, __pyx_t_2);
__pyx_t_2 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1272, __pyx_L21_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_i); __pyx_9genexpr24__pyx_v_i = 0;
goto __pyx_L24_exit_scope;
__pyx_L21_error:;
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_i); __pyx_9genexpr24__pyx_v_i = 0;
goto __pyx_L1_error;
__pyx_L24_exit_scope:;
} /* exit inner scope */
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 1272, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->running_fnf);
__Pyx_DECREF(__pyx_v_self->running_fnf);
__pyx_v_self->running_fnf = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
1273: ##Total gains in each month
+1274: monthly_gains = np.zeros((12,numYears_short))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_12); __Pyx_GIVEREF(__pyx_int_12); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_12); __Pyx_INCREF(__pyx_v_numYears_short); __Pyx_GIVEREF(__pyx_v_numYears_short); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_numYears_short); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_monthly_gains = __pyx_t_3; __pyx_t_3 = 0;
+1275: startYear = self.short_starting_year
__pyx_t_10 = __pyx_v_self->short_starting_year; __pyx_v_startYear = __pyx_t_10;
1276: ##########################################################################################
1277: ##########################################################################################
1278: #Read flow from historical record
1279: ##########################################################################################
+1280: prev_gains = 0.0
__pyx_v_prev_gains = 0.0;
+1281: prev_fnf = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_prev_fnf = __pyx_float_0_0;
+1282: for t in range(0,self.T_short):
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->T_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; __pyx_t_8 = NULL; } else { __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1282, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1282, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1282, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1282, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1283: ##Get date information
+1284: da = self.short_day_month[t]
if (unlikely(__pyx_v_self->short_day_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1284, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->short_day_month, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_da, __pyx_t_3);
__pyx_t_3 = 0;
+1285: m = self.short_month[t]
if (unlikely(__pyx_v_self->short_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1285, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->short_month, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1285, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_3);
__pyx_t_3 = 0;
+1286: dowy = self.short_dowy[t]
if (unlikely(__pyx_v_self->short_dowy == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1286, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->short_dowy, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_3);
__pyx_t_3 = 0;
+1287: wateryear = self.short_water_year[t]
if (unlikely(__pyx_v_self->short_water_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1287, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->short_water_year, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3);
__pyx_t_3 = 0;
1288:
1289: #Calculate the total daily unstored gains to the delta
+1290: this_day_fnf = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_this_day_fnf, __pyx_float_0_0);
+1291: fnf_off = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_fnf_off, __pyx_float_0_0);
+1292: this_day_gains = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_this_day_gains, __pyx_float_0_0);
+1293: for reservoir_obj in sac_list:
__pyx_t_3 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1293, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1294: this_day_fnf += reservoir_obj.fnf_short[t]
if (unlikely(__pyx_v_reservoir_obj->fnf_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1294, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->fnf_short, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_this_day_fnf, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_this_day_fnf, __pyx_t_2);
__pyx_t_2 = 0;
+1295: min_release = reservoir_obj.env_min_flow[self.delta.forecastSCWYT][m-1]*cfs_tafd
if (unlikely(__pyx_v_reservoir_obj->env_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1295, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->env_min_flow, __pyx_v_self->delta->forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_min_release, __pyx_t_2);
__pyx_t_2 = 0;
+1296: gauge_min = reservoir_obj.temp_releases[self.delta.forecastSCWYT][m-1]*cfs_tafd
if (unlikely(__pyx_v_reservoir_obj->temp_releases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1296, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->temp_releases, __pyx_v_self->delta->forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_gauge_min, __pyx_t_2);
__pyx_t_2 = 0;
+1297: this_day_gains += max(max(reservoir_obj.downstream_short[t] + min_release, 0.0), gauge_min)
__Pyx_INCREF(__pyx_v_gauge_min); __pyx_t_2 = __pyx_v_gauge_min; __pyx_t_11 = 0.0; if (unlikely(__pyx_v_reservoir_obj->downstream_short == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1297, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->downstream_short, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_v_min_release); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = PyObject_RichCompare(__pyx_t_12, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_14) { __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __pyx_t_13; __pyx_t_13 = 0; } else { __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = __pyx_t_5; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = PyObject_RichCompare(__pyx_t_2, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1297, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_14) { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = __pyx_t_5; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_2); __pyx_t_2 = 0;
+1298: if t >= 30:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1298, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_14) { /* … */ }
+1299: fnf_off += reservoir_obj.fnf_short[t-30]
if (unlikely(__pyx_v_reservoir_obj->fnf_short == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1299, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->fnf_short, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_fnf_off, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_fnf_off, __pyx_t_2);
__pyx_t_2 = 0;
1300:
+1301: this_day_gains += gains_sac_short[t]
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_gains_sac_short, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_2); __pyx_t_2 = 0;
+1302: this_day_gains += gains_sj_short[t]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_gains_sj_short, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_3); __pyx_t_3 = 0;
+1303: this_day_gains += eastside_streams_short[t]
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_eastside_streams_short, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_2); __pyx_t_2 = 0;
1304:
+1305: prev_fnf += this_day_fnf
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_prev_fnf, __pyx_v_this_day_fnf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_prev_fnf, __pyx_t_2); __pyx_t_2 = 0;
+1306: prev_fnf -= fnf_off
__pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_v_prev_fnf, __pyx_v_fnf_off); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_prev_fnf, __pyx_t_2); __pyx_t_2 = 0;
+1307: if t < 30:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_14) { /* … */ goto __pyx_L30; }
+1308: self.running_fnf[dowy][wateryear] = min(prev_fnf*30.0/(t+1), 4.0)
__pyx_t_11 = 4.0;
__pyx_t_2 = PyNumber_Multiply(__pyx_v_prev_fnf, __pyx_float_30_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_14) {
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_self->running_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1308, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->running_fnf, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_wateryear, __pyx_t_1) < 0)) __PYX_ERR(0, 1308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1309: else:
+1310: self.running_fnf[dowy][wateryear] = min(prev_fnf, 4.0)
/*else*/ {
__pyx_t_11 = 4.0;
__Pyx_INCREF(__pyx_v_prev_fnf);
__pyx_t_1 = __pyx_v_prev_fnf;
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_14) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_self->running_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1310, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->running_fnf, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_wateryear, __pyx_t_1) < 0)) __PYX_ERR(0, 1310, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L30:;
1311:
1312: ##Calculate the max daily 'unstored pumping'
1313: #'unstored pumping' is the minimum of three constraints on the 'gains' flows
+1314: volume_constraint = this_day_gains - self.delta.min_outflow[self.delta.forecastSCWYT][m-1]*cfs_tafd + depletions_short[t]#extra gains after delta outflow requirements
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1314, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_v_self->delta->forecastSCWYT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Subtract(__pyx_v_this_day_gains, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_depletions_short, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_volume_constraint, __pyx_t_2);
__pyx_t_2 = 0;
+1315: flow_ratio_constraint = this_day_gains*self.delta.export_ratio[self.delta.forecastSCWYT][m-1]#portion of gains that can be exported
if (unlikely(__pyx_v_self->delta->export_ratio == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1315, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->export_ratio, __pyx_v_self->delta->forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_v_this_day_gains, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_flow_ratio_constraint, __pyx_t_1);
__pyx_t_1 = 0;
+1316: state_pumping = np.interp(da, self.delta.pump_max['swp']['d'], self.delta.pump_max['swp']['intake_limit'])#max state pumping
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_interp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1316, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1316, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_da, __pyx_t_5, __pyx_t_13}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_da, __pyx_t_5, __pyx_t_13}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_10, __pyx_v_da); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_10, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_10, __pyx_t_13); __pyx_t_5 = 0; __pyx_t_13 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_state_pumping, __pyx_t_1); __pyx_t_1 = 0;
+1317: fed_pumping = np.interp(da, self.delta.pump_max['cvp']['d'], self.delta.pump_max['cvp']['intake_limit'])#max fed pumping
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_interp); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1317, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_d); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1317, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_da, __pyx_t_13, __pyx_t_5}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_da, __pyx_t_13, __pyx_t_5}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_10, __pyx_v_da); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_10, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_10, __pyx_t_5); __pyx_t_13 = 0; __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_fed_pumping, __pyx_t_1); __pyx_t_1 = 0;
+1318: pumping_constraint = (state_pumping + fed_pumping) * cfs_tafd#max pumping
__pyx_t_1 = PyNumber_Add(__pyx_v_state_pumping, __pyx_v_fed_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_pumping_constraint, __pyx_t_3); __pyx_t_3 = 0;
1319:
1320: ##Monthly
+1321: monthly_gains[m-1][wateryear] += max(min(volume_constraint,flow_ratio_constraint, pumping_constraint), 0.0)
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_monthly_gains, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_wateryear); __pyx_t_3 = __pyx_v_wateryear; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = 0.0; __Pyx_INCREF(__pyx_v_flow_ratio_constraint); __pyx_t_5 = __pyx_v_flow_ratio_constraint; __Pyx_INCREF(__pyx_v_pumping_constraint); __pyx_t_13 = __pyx_v_pumping_constraint; __Pyx_INCREF(__pyx_v_volume_constraint); __pyx_t_2 = __pyx_v_volume_constraint; __pyx_t_16 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1321, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_14) { __Pyx_INCREF(__pyx_t_5); __pyx_t_15 = __pyx_t_5; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_15 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_15); __pyx_t_2 = __pyx_t_15; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16 = PyObject_RichCompare(__pyx_t_13, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1321, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_14) { __Pyx_INCREF(__pyx_t_13); __pyx_t_15 = __pyx_t_13; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_15 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_t_15); __pyx_t_5 = __pyx_t_15; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyObject_RichCompare(__pyx_t_13, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_14) { __pyx_t_2 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __pyx_t_2; __pyx_t_2 = 0; } else { __Pyx_INCREF(__pyx_t_5); __pyx_t_15 = __pyx_t_5; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_3, __pyx_t_5) < 0)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
1322: ##########################################################################################
1323: ##########################################################################################
1324: #Perform linear regression - FNF used for running prediction of total 'unstored' flow to delta in oct-mar; apr-jul period
1325: ##########################################################################################
+1326: self.delta_gains_regression = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_self->delta_gains_regression); __Pyx_DECREF(__pyx_v_self->delta_gains_regression); __pyx_v_self->delta_gains_regression = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+1327: self.delta_gains_regression['slope'] = np.zeros((365,12))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_12, __pyx_tuple__22) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__22); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1327, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_slope, __pyx_t_6) < 0)) __PYX_ERR(0, 1327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_tuple__22 = PyTuple_Pack(2, __pyx_int_365, __pyx_int_12); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 1327, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22);
+1328: self.delta_gains_regression['intercept'] = np.zeros((365,12))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_3, __pyx_tuple__22) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_tuple__22); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1328, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_intercept, __pyx_t_6) < 0)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1329:
+1330: for x in range(0,365):
for (__pyx_t_9 = 0; __pyx_t_9 < 0x16D; __pyx_t_9+=1) {
__pyx_v_x = __pyx_t_9;
1331: #fig = plt.figure()
1332: #coef_save = np.zeros((12,2))
1333: #regress for gains in oct-mar period and april-jul period
+1334: for mm in range(0,12):
for (__pyx_t_17 = 0; __pyx_t_17 < 12; __pyx_t_17+=1) {
__pyx_v_mm = __pyx_t_17;
+1335: if x <= self.dowy_eom[self.non_leap_year][mm]:
__pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_x); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_self->dowy_eom == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1335, __pyx_L1_error) } __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_self->dowy_eom, __pyx_v_self->non_leap_year, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_12, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_14) { /* … */ goto __pyx_L35; }
+1336: one_year_runfnf = self.running_fnf[x]
if (unlikely(__pyx_v_self->running_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1336, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_self->running_fnf, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF_SET(__pyx_v_one_year_runfnf, __pyx_t_12);
__pyx_t_12 = 0;
+1337: monthly_gains_predict = monthly_gains[mm]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_monthly_gains, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_XDECREF_SET(__pyx_v_monthly_gains_predict, __pyx_t_12); __pyx_t_12 = 0;
1338: else:
+1339: monthly_gains_predict = np.zeros(numYears_short-1)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_numYears_short, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_12 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF_SET(__pyx_v_monthly_gains_predict, __pyx_t_12);
__pyx_t_12 = 0;
+1340: one_year_runfnf = np.zeros(numYears_short-1)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_v_numYears_short, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_12 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_one_year_runfnf, __pyx_t_12); __pyx_t_12 = 0;
+1341: for yy in range(1,numYears_short):
__pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_1); __Pyx_INCREF(__pyx_v_numYears_short); __Pyx_GIVEREF(__pyx_v_numYears_short); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_numYears_short); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_12 = __pyx_t_3; __Pyx_INCREF(__pyx_t_12); __pyx_t_4 = 0; __pyx_t_8 = NULL; } else { __pyx_t_4 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_12))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_8(__pyx_t_12); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1341, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __pyx_L35:;
+1342: monthly_gains_predict[yy-1] = monthly_gains[mm][yy]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_monthly_gains, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_yy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_v_monthly_gains_predict, __pyx_t_3, __pyx_t_6) < 0)) __PYX_ERR(0, 1342, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1343: one_year_runfnf[yy-1] = self.running_fnf[x][yy-1]
if (unlikely(__pyx_v_self->running_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1343, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_self->running_fnf, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_v_one_year_runfnf, __pyx_t_3, __pyx_t_5) < 0)) __PYX_ERR(0, 1343, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1344:
1345:
+1346: coef = np.polyfit(one_year_runfnf, monthly_gains_predict, 1)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_one_year_runfnf, __pyx_v_monthly_gains_predict, __pyx_int_1}; __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_12); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_one_year_runfnf, __pyx_v_monthly_gains_predict, __pyx_int_1}; __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_12); } else #endif { __pyx_t_6 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_one_year_runfnf); __Pyx_GIVEREF(__pyx_v_one_year_runfnf); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_v_one_year_runfnf); __Pyx_INCREF(__pyx_v_monthly_gains_predict); __Pyx_GIVEREF(__pyx_v_monthly_gains_predict); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_v_monthly_gains_predict); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_10, __pyx_int_1); __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_12); __pyx_t_12 = 0;
+1347: self.delta_gains_regression['slope'][x][mm] = coef[0]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1347, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_slope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_v_mm, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1348: self.delta_gains_regression['intercept'][x][mm] = coef[1]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1348, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_intercept); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_mm, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1348, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } }
1349: #r = np.corrcoef(one_year_runfnf,monthly_gains_predict)[0,1]
1350: #coef_save[mm] = coef
1351: #for mm in range(0,12):
1352: #ax1 = fig.add_subplot(4,3,mm+1)
1353: #if x <= self.dowy_eom[mm]:
1354: #monthly_gains_predict = monthly_gains[mm]
1355: #one_year_runfnf = self.running_fnf[x]
1356: #else:
1357: #monthly_gains_predict = np.zeros(numYears_short-1)
1358: #one_year_runfnf = np.zeros(numYears_short-1)
1359: #for yy in range(1,numYears_short):
1360: #monthly_gains_predict[yy-1] = monthly_gains[mm][yy]
1361: #one_year_runfnf[yy-1] = self.running_fnf[x][yy-1]
1362:
1363: #ax1.scatter(one_year_runfnf, monthly_gains_predict, s=50, c='red', edgecolor='none', alpha=0.7)
1364: #ax1.plot([0.0, np.max(one_year_runfnf)], [coef_save[mm][1], (np.max(one_year_runfnf)*coef_save[mm][0] + coef_save[mm][1])],c='red')
1365: #ax1.set_xlim([np.min(one_year_runfnf), np.max(one_year_runfnf)])
1366: #plt.show()
1367: #plt.close()
1368:
1369:
+1370: def find_all_triggers(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_31find_all_triggers(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_31find_all_triggers(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_all_triggers (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_30find_all_triggers(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_30find_all_triggers(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_all_triggers", 0);
__Pyx_TraceCall("find_all_triggers", __pyx_f[0], 1370, 0, __PYX_ERR(0, 1370, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_all_triggers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1371: #########################################################################################
1372: #this function searches through canals to find the maximum amount of
1373: #water that can be taken from each reservoir at one time.
1374: #########################################################################################
1375: cdef Reservoir reservoir_obj
1376: cdef Canal canal_obj
1377: cdef District district_obj
1378: cdef Waterbank waterbank_obj
1379:
1380: #The value self.reservoir.flood_flow_min is used to determine when uncontrolled releases
1381: #are initiated at the reservoir
+1382: for reservoir_obj in [self.isabella, self.millerton, self.kaweah, self.success, self.pineflat]:
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_self->pineflat)); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_3 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1382, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1383: #for each reservoir, clear the demands of each object
+1384: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1384, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1384, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1384, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1384, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1385: district_obj.current_requested = 0.0
__pyx_v_district_obj->current_requested = 0.0;
+1386: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1386, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1386, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 1386, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1387: waterbank_obj.current_requested = 0.0
__pyx_v_waterbank_obj->current_requested = 0.0;
+1388: reservoir_obj.flood_flow_min = 0.0
__pyx_v_reservoir_obj->flood_flow_min = 0.0;
+1389: for canal_obj in self.reservoir_canal[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1389, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
__pyx_t_6 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1389, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1389, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1389, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_6(__pyx_t_5);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1389, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 1389, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1390: #find all demands that can be reached from the reservoir
+1391: reservoir_obj.flood_flow_min += self.find_flood_trigger(canal_obj, reservoir_obj.key, canal_obj.name, 'normal','recharge')
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_reservoir_obj->flood_flow_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[6] = {__pyx_t_9, ((PyObject *)__pyx_v_canal_obj), __pyx_v_reservoir_obj->key, __pyx_v_canal_obj->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[6] = {__pyx_t_9, ((PyObject *)__pyx_v_canal_obj), __pyx_v_reservoir_obj->key, __pyx_v_canal_obj->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_11 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_canal_obj)); __Pyx_GIVEREF(((PyObject *)__pyx_v_canal_obj)); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, ((PyObject *)__pyx_v_canal_obj)); __Pyx_INCREF(__pyx_v_reservoir_obj->key); __Pyx_GIVEREF(__pyx_v_reservoir_obj->key); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_reservoir_obj->key); __Pyx_INCREF(__pyx_v_canal_obj->name); __Pyx_GIVEREF(__pyx_v_canal_obj->name); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_canal_obj->name); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_n_u_normal); __Pyx_INCREF(__pyx_n_u_recharge); __Pyx_GIVEREF(__pyx_n_u_recharge); PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_10, __pyx_n_u_recharge); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_reservoir_obj->flood_flow_min = __pyx_t_12;
1392:
1393: #also calculate for san luis - but split federal and state portions (uncontrolled releases are made seperately)
1394: #only want the demands that are associated w/ nodes that have a contract
+1395: self.canal_contract['caa'] = [self.swpdelta]
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->swpdelta)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1395, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_2) < 0)) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1396: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1396, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1396, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1396, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1397: district_obj.current_requested = 0.0
__pyx_v_district_obj->current_requested = 0.0;
+1398: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1398, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1398, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 1398, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1399: waterbank_obj.current_requested = 0.0
__pyx_v_waterbank_obj->current_requested = 0.0;
+1400: self.sanluisstate.flood_flow_min = self.find_flood_trigger(self.calaqueduct, self.sanluis.key, self.calaqueduct.name, 'normal', 'recharge')
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[6] = {__pyx_t_8, ((PyObject *)__pyx_v_self->calaqueduct), __pyx_v_self->sanluis->key, __pyx_v_self->calaqueduct->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[6] = {__pyx_t_8, ((PyObject *)__pyx_v_self->calaqueduct), __pyx_v_self->sanluis->key, __pyx_v_self->calaqueduct->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_7 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_10, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(__pyx_v_self->sanluis->key); __Pyx_GIVEREF(__pyx_v_self->sanluis->key); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_10, __pyx_v_self->sanluis->key); __Pyx_INCREF(__pyx_v_self->calaqueduct->name); __Pyx_GIVEREF(__pyx_v_self->calaqueduct->name); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_10, __pyx_v_self->calaqueduct->name); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_10, __pyx_n_u_normal); __Pyx_INCREF(__pyx_n_u_recharge); __Pyx_GIVEREF(__pyx_n_u_recharge); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_10, __pyx_n_u_recharge); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1400, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->sanluisstate->flood_flow_min = __pyx_t_12;
1401: #same thing for the federal portion
+1402: self.canal_contract['caa'] = [self.cvpdelta, self.cvpexchange, self.crossvalley]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1402, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_2) < 0)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1403: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1403, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1403, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1403, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1404: district_obj.current_requested = 0.0
__pyx_v_district_obj->current_requested = 0.0;
+1405: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1405, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1405, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 1405, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1406: waterbank_obj.current_requested = 0.0
__pyx_v_waterbank_obj->current_requested = 0.0;
+1407: self.sanluisfederal.flood_flow_min = self.find_flood_trigger(self.calaqueduct, self.sanluis.key, self.calaqueduct.name, 'normal', 'recharge')
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[6] = {__pyx_t_7, ((PyObject *)__pyx_v_self->calaqueduct), __pyx_v_self->sanluis->key, __pyx_v_self->calaqueduct->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[6] = {__pyx_t_7, ((PyObject *)__pyx_v_self->calaqueduct), __pyx_v_self->sanluis->key, __pyx_v_self->calaqueduct->name, __pyx_n_u_normal, __pyx_n_u_recharge}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_8 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_10, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(__pyx_v_self->sanluis->key); __Pyx_GIVEREF(__pyx_v_self->sanluis->key); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_10, __pyx_v_self->sanluis->key); __Pyx_INCREF(__pyx_v_self->calaqueduct->name); __Pyx_GIVEREF(__pyx_v_self->calaqueduct->name); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_10, __pyx_v_self->calaqueduct->name); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_10, __pyx_n_u_normal); __Pyx_INCREF(__pyx_n_u_recharge); __Pyx_GIVEREF(__pyx_n_u_recharge); PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_10, __pyx_n_u_recharge); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->sanluisfederal->flood_flow_min = __pyx_t_12;
1408: #return the contract association on the california aqeuduct to all CVP & SWP delta contracts
+1409: self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]
__pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->swpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1409, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_2) < 0)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1410:
1411:
+1412: def find_flood_trigger(self, Canal canal, prev_canal, contract_canal, flow_dir,flow_type):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_33find_flood_trigger(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_33find_flood_trigger(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal = 0;
PyObject *__pyx_v_prev_canal = 0;
PyObject *__pyx_v_contract_canal = 0;
PyObject *__pyx_v_flow_dir = 0;
PyObject *__pyx_v_flow_type = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_flood_trigger (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_contract_canal,&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,0};
PyObject* values[5] = {0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 5, 5, 1); __PYX_ERR(0, 1412, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 5, 5, 2); __PYX_ERR(0, 1412, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 5, 5, 3); __PYX_ERR(0, 1412, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 5, 5, 4); __PYX_ERR(0, 1412, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_flood_trigger") < 0)) __PYX_ERR(0, 1412, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
}
__pyx_v_canal = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)values[0]);
__pyx_v_prev_canal = values[1];
__pyx_v_contract_canal = values[2];
__pyx_v_flow_dir = values[3];
__pyx_v_flow_type = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1412, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_flood_trigger", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_canal), __pyx_ptype_11calfews_src_8canal_cy_Canal, 1, "canal", 0))) __PYX_ERR(0, 1412, __pyx_L1_error)
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_32find_flood_trigger(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_v_flow_dir, __pyx_v_flow_type);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_32find_flood_trigger(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type) {
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
PyObject *__pyx_v_starting_point = NULL;
PyObject *__pyx_v_canal_size = NULL;
PyObject *__pyx_v_canal_range = NULL;
PyObject *__pyx_v_tot_contractor_demand = NULL;
PyObject *__pyx_v_canal_loc = NULL;
PyObject *__pyx_v_new_loc_demand = NULL;
long __pyx_v_contractor_toggle;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_wb_member = NULL;
PyObject *__pyx_v_new_flow_dir = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_flood_trigger", 0);
__Pyx_TraceCall("find_flood_trigger", __pyx_f[0], 1412, 0, __PYX_ERR(0, 1412, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_flood_trigger", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF(__pyx_v_starting_point);
__Pyx_XDECREF(__pyx_v_canal_size);
__Pyx_XDECREF(__pyx_v_canal_range);
__Pyx_XDECREF(__pyx_v_tot_contractor_demand);
__Pyx_XDECREF(__pyx_v_canal_loc);
__Pyx_XDECREF(__pyx_v_new_loc_demand);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_wb_member);
__Pyx_XDECREF(__pyx_v_new_flow_dir);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1413: #########################################################################################
1414: #this function loops through the canal nodes looking for recharge storage attached
1415: #to particular contracts.
1416: #########################################################################################
1417: cdef Canal canal_obj
1418: cdef Reservoir reservoir_obj
1419: cdef Contract contract_obj
1420: cdef District district_obj
1421: cdef Waterbank waterbank_obj
1422:
1423: #finds where on the canal to begin (if coming from another canal), and
1424: #where to end (either the end or beginning of canal, depending on flow direction)
1425: # for starting_point, new_canal in enumerate(self.canal_district[canal.name]):
+1426: for starting_point in range(len(self.canal_district[canal.name])):
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1426, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1426, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_4(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1426, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__pyx_L4_break:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1427: if self.canal_district[canal.name][starting_point].key == prev_canal:#find canal intersections
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1427, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_starting_point); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1427, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1427, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_6) {
/* … */
}
+1428: break
goto __pyx_L4_break;
+1429: if flow_dir == "normal":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1429, __pyx_L1_error) if (__pyx_t_6) { /* … */ goto __pyx_L6; }
+1430: canal_size = self.canal_district_len[canal.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1430, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_canal_size = __pyx_t_1;
__pyx_t_1 = 0;
+1431: canal_range = range((starting_point+1),canal_size)
if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 1431, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_starting_point, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1431, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1431, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
__Pyx_INCREF(__pyx_v_canal_size);
__Pyx_GIVEREF(__pyx_v_canal_size);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_canal_size);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1431, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_canal_range = __pyx_t_1;
__pyx_t_1 = 0;
+1432: elif flow_dir == "reverse":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1432, __pyx_L1_error) if (__pyx_t_6) { /* … */ goto __pyx_L6; }
+1433: canal_range = range((starting_point-1),0,-1)
if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 1433, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_starting_point, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_0);
__Pyx_INCREF(__pyx_int_neg_1);
__Pyx_GIVEREF(__pyx_int_neg_1);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_int_neg_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_canal_range = __pyx_t_1;
__pyx_t_1 = 0;
1434: else:
+1435: return (0.0)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_float_0_0);
__pyx_r = __pyx_float_0_0;
goto __pyx_L0;
}
__pyx_L6:;
1436:
+1437: tot_contractor_demand = 0.0#initialize total demand on the canal
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_tot_contractor_demand = __pyx_float_0_0;
+1438: for canal_loc in canal_range:#loop through the flow range on the canal (determined above)
if (likely(PyList_CheckExact(__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_v_canal_range)) { __pyx_t_1 = __pyx_v_canal_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_4 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_canal_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1438, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_1); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1438, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1439: if self.canal_district[canal.name][canal_loc].is_District == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1439, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_District); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1439, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
goto __pyx_L9;
}
+1440: district_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1440, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1440, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+1441: new_loc_demand = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
+1442: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
1443: #find if the node has a particular contract
+1444: for contract_obj in self.canal_contract[contract_canal]:
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1444, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_contract_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1444, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1444, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1444, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_3);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1444, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1444, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1445: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1445, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1445, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1445, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_10);
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1446: if contract_obj.name == contract_key:
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_v_contract_key, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1446, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+1447: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
1448: #calculate teh maximium recharge storage
+1449: if contractor_toggle == 1:
__pyx_t_6 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_6) {
/* … */
}
+1450: new_loc_demand = min(canal.turnout[flow_dir][canal_loc]*cfs_tafd, max(district_obj.in_district_storage - district_obj.current_requested, 0.0))
__pyx_t_11 = 0.0;
__pyx_t_12 = (__pyx_v_district_obj->in_district_storage - __pyx_v_district_obj->current_requested);
if (((__pyx_t_11 > __pyx_t_12) != 0)) {
__pyx_t_13 = __pyx_t_11;
} else {
__pyx_t_13 = __pyx_t_12;
}
__pyx_t_11 = __pyx_t_13;
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1450, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_14 = PyObject_RichCompare(__pyx_t_5, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (__pyx_t_6) {
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1450, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_3 = __pyx_t_14;
__pyx_t_14 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_3 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_10);
__pyx_t_10 = 0;
+1451: tot_contractor_demand += new_loc_demand
__pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_10); __pyx_t_10 = 0;
+1452: district_obj.current_requested += new_loc_demand
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_district_obj->current_requested); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1452, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_district_obj->current_requested = __pyx_t_11;
1453:
+1454: elif self.canal_district[canal.name][canal_loc].is_Waterbank == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1454, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_6) {
/* … */
goto __pyx_L9;
}
+1455: waterbank_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1455, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_3));
__pyx_t_3 = 0;
+1456: new_loc_demand = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
1457: #at a waterbank, find if the bank member has a contract
+1458: for district_key in waterbank_obj.participant_list:
if (unlikely(__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1458, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1458, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1458, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_10);
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1459: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
+1460: for wb_member in self.district_keys[district_key]:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1460, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
__pyx_t_14 = __pyx_t_10; __Pyx_INCREF(__pyx_t_14); __pyx_t_9 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_8 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1460, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_14))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1460, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_14, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1460, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_14, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
}
} else {
__pyx_t_10 = __pyx_t_8(__pyx_t_14);
if (unlikely(!__pyx_t_10)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1460, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_10);
}
__Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_10);
__pyx_t_10 = 0;
/* … */
}
__pyx_L19_break:;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1461: for contract_obj in self.canal_contract[contract_canal]:
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1461, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_contract_canal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
__pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); __pyx_t_15 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_15 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_16 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1461, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_10); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1461, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
} else {
if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_10); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 1461, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
}
} else {
__pyx_t_10 = __pyx_t_16(__pyx_t_5);
if (unlikely(!__pyx_t_10)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1461, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_10);
}
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__pyx_L21_break:;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1462: for contract_key in wb_member.contract_list:
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_17 = __pyx_t_10; __Pyx_INCREF(__pyx_t_17); __pyx_t_18 = 0; __pyx_t_19 = NULL; } else { __pyx_t_18 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_19 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1462, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_19)) { if (likely(PyList_CheckExact(__pyx_t_17))) { if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_17)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 1462, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_17, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_17)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 1462, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_17, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_19(__pyx_t_17); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1462, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __pyx_L23_break:; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+1463: if contract_obj.name == contract_key:
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_v_contract_key, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1463, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+1464: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
+1465: break
goto __pyx_L23_break;
+1466: if contractor_toggle == 1:
__pyx_t_6 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_6) {
/* … */
}
+1467: break
goto __pyx_L21_break;
+1468: if contractor_toggle == 1:
__pyx_t_6 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_6) {
/* … */
}
+1469: break
goto __pyx_L19_break;
+1470: if contractor_toggle == 1:
__pyx_t_6 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_6) {
/* … */
}
+1471: new_loc_demand += max(waterbank_obj.tot_storage*waterbank_obj.ownership[district_key],0.0)#only account for member-owned storage
__pyx_t_11 = 0.0;
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_waterbank_obj->tot_storage); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1471, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_17 = PyNumber_Multiply(__pyx_t_14, __pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_10 = PyObject_RichCompare(__pyx_t_14, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_6) {
__pyx_t_10 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_5 = __pyx_t_10;
__pyx_t_10 = 0;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_5 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_new_loc_demand, __pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_17);
__pyx_t_17 = 0;
+1472: new_loc_demand -= waterbank_obj.current_requested
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_waterbank_obj->current_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_17 = PyNumber_InPlaceSubtract(__pyx_v_new_loc_demand, __pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_17); __pyx_t_17 = 0;
1473: #make sure storage doesn't exceed the turnout capacity
+1474: if new_loc_demand > canal.turnout[flow_dir][canal_loc]*cfs_tafd:
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1474, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyObject_RichCompare(__pyx_v_new_loc_demand, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_6) {
/* … */
}
+1475: new_loc_demand = canal.turnout[flow_dir][canal_loc]*cfs_tafd
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1475, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_canal_loc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_3);
__pyx_t_3 = 0;
+1476: waterbank_obj.current_requested += new_loc_demand
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_waterbank_obj->current_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_v_waterbank_obj->current_requested = __pyx_t_11;
+1477: tot_contractor_demand += new_loc_demand
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_17); __pyx_t_17 = 0;
1478:
1479: #if a node is a canal node, jump to that canal (function calls itself, but for another canal)
+1480: elif self.canal_district[canal.name][canal_loc].is_Canal == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1480, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_17, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
__pyx_L9:;
+1481: canal_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1481, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1481, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1481, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(((__pyx_t_17) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_17, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 1481, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_17));
__pyx_t_17 = 0;
+1482: new_loc_demand = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
+1483: if canal.turnout[flow_dir][canal_loc] > 0.0:
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1483, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_6) {
/* … */
}
+1484: new_flow_dir = canal.flow_directions[flow_type][canal_obj.name]
if (unlikely(__pyx_v_canal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1484, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_canal->flow_directions, __pyx_v_flow_type); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_flow_dir, __pyx_t_3);
__pyx_t_3 = 0;
+1485: new_loc_demand = self.find_flood_trigger(canal_obj, canal.key, contract_canal, new_flow_dir,flow_type)
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_5 = NULL; __pyx_t_20 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); __pyx_t_20 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[6] = {__pyx_t_5, ((PyObject *)__pyx_v_canal_obj), __pyx_v_canal->key, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_20, 5+__pyx_t_20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[6] = {__pyx_t_5, ((PyObject *)__pyx_v_canal_obj), __pyx_v_canal->key, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_20, 5+__pyx_t_20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_10 = PyTuple_New(5+__pyx_t_20); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_canal_obj)); __Pyx_GIVEREF(((PyObject *)__pyx_v_canal_obj)); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_20, ((PyObject *)__pyx_v_canal_obj)); __Pyx_INCREF(__pyx_v_canal->key); __Pyx_GIVEREF(__pyx_v_canal->key); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_20, __pyx_v_canal->key); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_20, __pyx_v_contract_canal); __Pyx_INCREF(__pyx_v_new_flow_dir); __Pyx_GIVEREF(__pyx_v_new_flow_dir); PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_20, __pyx_v_new_flow_dir); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_20, __pyx_v_flow_type); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_3); __pyx_t_3 = 0;
+1486: if new_loc_demand > canal.turnout[flow_dir][canal_loc]*cfs_tafd:
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1486, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyNumber_Multiply(__pyx_t_17, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_v_new_loc_demand, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
+1487: new_loc_demand = canal.turnout[flow_dir][canal_loc]*cfs_tafd
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1487, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = PyNumber_Multiply(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_17);
__pyx_t_17 = 0;
+1488: tot_contractor_demand += new_loc_demand
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_17); __pyx_t_17 = 0;
1489: #return total demand on the canal
+1490: return tot_contractor_demand
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_tot_contractor_demand); __pyx_r = __pyx_v_tot_contractor_demand; goto __pyx_L0;
1491:
1492:
+1493: def find_initial_carryover(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_35find_initial_carryover(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_35find_initial_carryover(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_initial_carryover (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_34find_initial_carryover(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_34find_initial_carryover(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj2 = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
CYTHON_UNUSED PyObject *__pyx_v_tot_state = NULL;
CYTHON_UNUSED PyObject *__pyx_v_tot_federal = NULL;
CYTHON_UNUSED double __pyx_v_total_alloc_state;
CYTHON_UNUSED double __pyx_v_total_alloc_federal;
PyObject *__pyx_v_this_reservoir_all_contract = NULL;
double __pyx_v_priority_allocation;
double __pyx_v_secondary_allocation;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_initial_carryover", 0);
__Pyx_TraceCall("find_initial_carryover", __pyx_f[0], 1493, 0, __PYX_ERR(0, 1493, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_initial_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_tot_state);
__Pyx_XDECREF(__pyx_v_tot_federal);
__Pyx_XDECREF(__pyx_v_this_reservoir_all_contract);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1494: #########################################################################################
1495: #takes the storage that exists at the start of the simulation and applies it either to
1496: #carryover storage or to the next year's (first year of simulation) allocation
1497: #########################################################################################
1498: cdef Contract contract_obj, contract_obj2
1499: cdef District district_obj
1500: cdef Reservoir reservoir_obj
1501:
+1502: tot_state = self.sanluisstate.S[0]
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1502, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->sanluisstate->S, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1502, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_tot_state = __pyx_t_1;
__pyx_t_1 = 0;
+1503: tot_federal = self.sanluisfederal.S[0]
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1503, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->sanluisfederal->S, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1503, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_tot_federal = __pyx_t_1;
__pyx_t_1 = 0;
+1504: total_alloc_state = self.swpdelta.total
__pyx_t_2 = __pyx_v_self->swpdelta->total; __pyx_v_total_alloc_state = __pyx_t_2;
+1505: total_alloc_federal = self.cvpdelta.total + self.cvpexchange.total
__pyx_v_total_alloc_federal = (__pyx_v_self->cvpdelta->total + __pyx_v_self->cvpexchange->total);
+1506: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1506, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1506, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1506, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1507: reservoir_obj = self.contract_reservoir[contract_obj.key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1507, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1507, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 1507, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_4));
__pyx_t_4 = 0;
1508: #then find all the contracts associated with that reservoir
+1509: this_reservoir_all_contract = self.reservoir_contract[reservoir_obj.key]
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1509, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1509, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_4);
__pyx_t_4 = 0;
1510: #need to find the total deliveries already made from the reservoir,
1511: #total carryover storage at the reservoir, and the total priority/secondary allocations
1512: #at that reservoir
+1513: priority_allocation = 0.0
__pyx_v_priority_allocation = 0.0;
+1514: secondary_allocation = 0.0
__pyx_v_secondary_allocation = 0.0;
+1515: for contract_obj2 in this_reservoir_all_contract:
if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) { __pyx_t_4 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1515, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1515, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1515, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1515, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1515, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_contract_obj2, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_7)); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1516: if contract_obj2.allocation_priority == 1:
__pyx_t_8 = ((__pyx_v_contract_obj2->allocation_priority == 1) != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L7;
}
+1517: priority_allocation += contract_obj2.total
__pyx_v_priority_allocation = (__pyx_v_priority_allocation + __pyx_v_contract_obj2->total);
1518: else:
+1519: secondary_allocation += contract_obj2.total
/*else*/ {
__pyx_v_secondary_allocation = (__pyx_v_secondary_allocation + __pyx_v_contract_obj2->total);
}
__pyx_L7:;
1520:
+1521: if contract_obj.allocation_priority == 1:
__pyx_t_8 = ((__pyx_v_contract_obj->allocation_priority == 1) != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L8;
}
+1522: if priority_allocation > 0.0:
__pyx_t_8 = ((__pyx_v_priority_allocation > 0.0) != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L9;
}
+1523: contract_obj.tot_new_alloc = (reservoir_obj.S[0] - reservoir_obj.dead_pool)*max(contract_obj.total/priority_allocation, 1.0)
if (unlikely(__pyx_v_reservoir_obj->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1523, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->S, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_reservoir_obj->dead_pool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_2 = 1.0;
if (unlikely(__pyx_v_priority_allocation == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 1523, __pyx_L1_error)
}
__pyx_t_10 = (__pyx_v_contract_obj->total / __pyx_v_priority_allocation);
if (((__pyx_t_2 > __pyx_t_10) != 0)) {
__pyx_t_11 = __pyx_t_2;
} else {
__pyx_t_11 = __pyx_t_10;
}
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = PyNumber_Multiply(__pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1523, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_contract_obj->tot_new_alloc = __pyx_t_11;
1524: else:
+1525: contract_obj.tot_new_alloc = 0.0
/*else*/ {
__pyx_v_contract_obj->tot_new_alloc = 0.0;
}
__pyx_L9:;
1526: else:
+1527: if secondary_allocation > 0.0:
/*else*/ {
__pyx_t_8 = ((__pyx_v_secondary_allocation > 0.0) != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L10;
}
+1528: contract_obj.tot_new_alloc = max(reservoir_obj.S[0] - reservoir_obj.dead_pool - priority_allocation, 0.0)*contract_obj.total/secondary_allocation
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_reservoir_obj->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1528, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_reservoir_obj->S, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_reservoir_obj->dead_pool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_priority_allocation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = PyNumber_Subtract(__pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyObject_RichCompare(__pyx_t_9, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_8) {
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_7 = __pyx_t_12;
__pyx_t_12 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_7 = __pyx_t_4;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_contract_obj->total); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_secondary_allocation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_contract_obj->tot_new_alloc = __pyx_t_11;
1529: else:
+1530: contract_obj.tot_new_alloc = 0.0
/*else*/ {
__pyx_v_contract_obj->tot_new_alloc = 0.0;
}
__pyx_L10:;
}
__pyx_L8:;
1531:
+1532: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1532, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1532, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1532, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1532, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1533: district_obj.carryover[contract_obj.name] = 0.0
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1533, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1533, __pyx_L1_error)
1534:
1535:
+1536: def allocate_private_contracts(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_37allocate_private_contracts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_37allocate_private_contracts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("allocate_private_contracts (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_36allocate_private_contracts(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_36allocate_private_contracts(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_crop_life = NULL;
PyObject *__pyx_v_crops = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_district_land = NULL;
PyObject *__pyx_v_private_crop_types = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_total_acres = NULL;
PyObject *__pyx_v_private_acres = NULL;
PyObject *__pyx_v_private_crops = NULL;
long __pyx_v_future_year;
PyObject *__pyx_v_crop_year = NULL;
PyObject *__pyx_v_i = NULL;
PyObject *__pyx_v_pump_keys = NULL;
PyObject *__pyx_v_pump = NULL;
long __pyx_v_future_years;
CYTHON_UNUSED int __pyx_9genexpr25__pyx_v__;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("allocate_private_contracts", 0);
__Pyx_TraceCall("allocate_private_contracts", __pyx_f[0], 1536, 0, __PYX_ERR(0, 1536, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_AddTraceback("calfews_src.model_cy.Model.allocate_private_contracts", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_crop_life);
__Pyx_XDECREF(__pyx_v_crops);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_district_land);
__Pyx_XDECREF(__pyx_v_private_crop_types);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_total_acres);
__Pyx_XDECREF(__pyx_v_private_acres);
__Pyx_XDECREF(__pyx_v_private_crops);
__Pyx_XDECREF(__pyx_v_crop_year);
__Pyx_XDECREF(__pyx_v_i);
__Pyx_XDECREF(__pyx_v_pump_keys);
__Pyx_XDECREF(__pyx_v_pump);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1537: cdef District district_obj
1538: cdef Private private_obj
1539:
+1540: crop_life = 25
__Pyx_INCREF(__pyx_int_25);
__pyx_v_crop_life = __pyx_int_25;
+1541: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1541, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1541, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1541, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1542: district_obj.private_acreage = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_district_obj->private_acreage); __Pyx_DECREF(__pyx_v_district_obj->private_acreage); __pyx_v_district_obj->private_acreage = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1543: if district_obj.has_pesticide:
__pyx_t_4 = (__pyx_v_district_obj->has_pesticide != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+1544: district_obj.private_fraction = [0.0 for _ in range(self.number_years)]
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
__pyx_9genexpr25__pyx_v__ = __pyx_t_7;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1544, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_district_obj->private_fraction);
__Pyx_DECREF(__pyx_v_district_obj->private_fraction);
__pyx_v_district_obj->private_fraction = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
+1545: for crops in district_obj.acreage_by_year:
__pyx_t_8 = 0;
if (unlikely(__pyx_v_district_obj->acreage_by_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1545, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_dict_iterator(__pyx_v_district_obj->acreage_by_year, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_5)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_10;
__pyx_t_10 = 0;
while (1) {
__pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_9, &__pyx_t_8, &__pyx_t_10, NULL, NULL, __pyx_t_5);
if (unlikely(__pyx_t_6 == 0)) break;
if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 1545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_10);
__pyx_t_10 = 0;
+1546: district_obj.private_acreage[crops] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_district_obj->private_acreage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1546, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->private_acreage, __pyx_v_crops, __pyx_t_10) < 0)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1547: elif district_obj.has_pmp:
__pyx_t_4 = (__pyx_v_district_obj->has_pmp != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+1548: for crops in district_obj.pmp_acreage:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_10 = __pyx_t_3; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0; __pyx_t_14 = NULL; } else { __pyx_t_9 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_14 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1548, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_10))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_10)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1548, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_10)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1548, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_14(__pyx_t_10); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1548, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1549: district_obj.private_acreage[crops] = 0.0
if (unlikely(__pyx_v_district_obj->private_acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1549, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->private_acreage, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1549, __pyx_L1_error)
1550: else:
+1551: district_obj.private_fraction = [0.0]
/*else*/ {
__pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyList_SET_ITEM(__pyx_t_10, 0, __pyx_float_0_0);
__Pyx_GIVEREF(__pyx_t_10);
__Pyx_GOTREF(__pyx_v_district_obj->private_fraction);
__Pyx_DECREF(__pyx_v_district_obj->private_fraction);
__pyx_v_district_obj->private_fraction = ((PyObject*)__pyx_t_10);
__pyx_t_10 = 0;
+1552: for crops in district_obj.crop_list:
if (unlikely(__pyx_v_district_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1552, __pyx_L1_error)
}
__pyx_t_10 = __pyx_v_district_obj->crop_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1552, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1552, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__pyx_L5:;
+1553: district_obj.private_acreage[crops] = 0.0
if (unlikely(__pyx_v_district_obj->private_acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1553, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->private_acreage, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1553, __pyx_L1_error)
1554:
+1555: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1555, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1555, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1555, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1556: private_obj.acreage = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->acreage); __Pyx_DECREF(__pyx_v_private_obj->acreage); __pyx_v_private_obj->acreage = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1557: private_obj.contract_fraction = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->contract_fraction); __Pyx_DECREF(__pyx_v_private_obj->contract_fraction); __pyx_v_private_obj->contract_fraction = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1558: private_obj.private_fraction = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->private_fraction); __Pyx_DECREF(__pyx_v_private_obj->private_fraction); __pyx_v_private_obj->private_fraction = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1559: private_obj.contract_list = []
__pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->contract_list); __Pyx_DECREF(__pyx_v_private_obj->contract_list); __pyx_v_private_obj->contract_list = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1560: private_obj.initial_planting = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->initial_planting); __Pyx_DECREF(__pyx_v_private_obj->initial_planting); __pyx_v_private_obj->initial_planting = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1561: private_obj.has_pesticide = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->has_pesticide); __Pyx_DECREF(__pyx_v_private_obj->has_pesticide); __pyx_v_private_obj->has_pesticide = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1562: private_obj.has_pmp = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->has_pmp); __Pyx_DECREF(__pyx_v_private_obj->has_pmp); __pyx_v_private_obj->has_pmp = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1563: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1563, __pyx_L1_error)
}
__pyx_t_10 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1563, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1564: district_land = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1564, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_district_land, __pyx_t_3);
__pyx_t_3 = 0;
+1565: if district_land.has_pesticide:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L18; }
+1566: private_obj.has_pesticide[district_key] = 1
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1566, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1566, __pyx_L1_error)
+1567: private_obj.has_pmp[district_key] = 0
if (unlikely(__pyx_v_private_obj->has_pmp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1567, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->has_pmp, __pyx_v_district_key, __pyx_int_0) < 0)) __PYX_ERR(0, 1567, __pyx_L1_error)
1568: else:
+1569: private_obj.has_pesticide[district_key] = 0
/*else*/ {
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1569, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key, __pyx_int_0) < 0)) __PYX_ERR(0, 1569, __pyx_L1_error)
+1570: if district_land.has_pmp:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L19; }
+1571: private_obj.has_pmp[district_key] = 1
if (unlikely(__pyx_v_private_obj->has_pmp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1571, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->has_pmp, __pyx_v_district_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1571, __pyx_L1_error)
1572: else:
+1573: private_obj.has_pmp[district_key] = 0
/*else*/ {
if (unlikely(__pyx_v_private_obj->has_pmp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1573, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->has_pmp, __pyx_v_district_key, __pyx_int_0) < 0)) __PYX_ERR(0, 1573, __pyx_L1_error)
}
__pyx_L19:;
}
__pyx_L18:;
+1574: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1574, __pyx_L1_error)
}
__pyx_t_10 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1574, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1575: private_obj.acreage[district_key] = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_private_obj->acreage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1575, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key, __pyx_t_3) < 0)) __PYX_ERR(0, 1575, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1576: private_obj.initial_planting[district_key] = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1576, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key, __pyx_t_3) < 0)) __PYX_ERR(0, 1576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1577: for crops in private_obj.crop_list:
if (unlikely(__pyx_v_private_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1577, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->crop_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1577, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_12);
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1578: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1578, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1578, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1578, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_4) {
/* … */
goto __pyx_L24;
}
+1579: private_obj.initial_planting[district_key][crops] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_15, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_11); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1579, __pyx_L1_error) } __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_v_crops, __pyx_t_12) < 0)) __PYX_ERR(0, 1579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
1580: else:
+1581: private_obj.initial_planting[district_key][crops] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1581, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1581, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_L24:;
+1582: for private_crop_types in private_obj.crop_list:
if (unlikely(__pyx_v_private_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1582, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->crop_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1582, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_private_crop_types, __pyx_t_12);
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1583: private_obj.acreage[district_key][private_crop_types] = np.zeros(crop_life)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_13, __pyx_v_crop_life) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_crop_life); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__pyx_v_private_obj->acreage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1583, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_private_crop_types, __pyx_t_12) < 0)) __PYX_ERR(0, 1583, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
1584:
+1585: district_land = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1585, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1585, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_district_land, __pyx_t_3);
__pyx_t_3 = 0;
+1586: for contract_key in district_land.contract_list:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_12 = __pyx_t_3; __Pyx_INCREF(__pyx_t_12); __pyx_t_8 = 0; __pyx_t_14 = NULL; } else { __pyx_t_8 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1586, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_12))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1586, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1586, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_14(__pyx_t_12); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1586, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1587: if contract_key not in private_obj.contract_list:
__pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract_key, __pyx_v_private_obj->contract_list, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1587, __pyx_L1_error) __pyx_t_16 = (__pyx_t_4 != 0); if (__pyx_t_16) { /* … */ }
+1588: private_obj.contract_list.append(contract_key)
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 1588, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyList_Append(__pyx_v_private_obj->contract_list, __pyx_v_contract_key); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1588, __pyx_L1_error)
1589:
+1590: if district_land.has_pesticide:
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1590, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_16) { /* … */ goto __pyx_L30; }
+1591: private_obj.private_fraction[district_key] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_13, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1591, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key, __pyx_t_12) < 0)) __PYX_ERR(0, 1591, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1592: total_acres = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_13, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_11); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_total_acres, __pyx_t_12); __pyx_t_12 = 0;
+1593: private_acres = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_13, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_private_acres, __pyx_t_12); __pyx_t_12 = 0;
1594: else:
+1595: private_obj.private_fraction[district_key] = np.zeros(self.number_years)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1595, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1595, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1595, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_13, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_11);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1595, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1595, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key, __pyx_t_12) < 0)) __PYX_ERR(0, 1595, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1596: total_acres = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_acres, __pyx_float_0_0);
+1597: private_acres = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_private_acres, __pyx_float_0_0); } __pyx_L30:;
+1598: if district_land.has_pesticide:
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1598, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_16) { /* … */ goto __pyx_L31; }
+1599: for crops in district_land.acreage_by_year:
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { __pyx_t_3 = __pyx_t_12; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_14 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1599, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1599, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1599, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1599, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_12); } __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_12); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1600: for private_crops in private_obj.crop_list:
if (unlikely(__pyx_v_private_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1600, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_private_obj->crop_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_18); __Pyx_INCREF(__pyx_t_11); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 1600, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_12, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
__Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_11);
__pyx_t_11 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1601: if private_crops == crops:
__pyx_t_11 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1601, __pyx_L1_error) __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1601, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_16) { /* … */ }
+1602: for future_year in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1603: private_acres[future_year] += private_obj.contract_fractions[district_key]*district_land.acreage_by_year[crops][future_year]
__pyx_t_20 = __pyx_v_future_year;
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_private_acres, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1603, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_21, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Multiply(__pyx_t_13, __pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_v_private_acres, __pyx_t_20, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+1604: district_land.private_acreage[private_crops][future_year] += private_obj.contract_fractions[district_key]*district_land.acreage_by_year[crops][future_year]
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_private_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_20 = __pyx_v_future_year; __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_21, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1604, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = PyNumber_Multiply(__pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_22); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_21, __pyx_t_20, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1604, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+1605: if future_year == 0:
__pyx_t_16 = ((__pyx_v_future_year == 0) != 0);
if (__pyx_t_16) {
/* … */
goto __pyx_L39;
}
+1606: private_obj.initial_planting[district_key][private_crops][future_year] = private_obj.contract_fractions[district_key]*district_land.acreage_by_year[crops][future_year]/float(crop_life)
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1606, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = PyNumber_Multiply(__pyx_t_21, __pyx_t_13); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_22, __pyx_t_13); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1606, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_private_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_22, __pyx_v_future_year, __pyx_t_21, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1606, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
1607: else:
1608: #private_obj.initial_planting[district_key][private_crops][future_year] = private_obj.initial_planting[district_key][private_crops][future_year-1] + max(private_obj.contract_fractions[district_key]*(district_land.acreage_by_year[crops][future_year] - district_land.acreage_by_year[crops][future_year-1]),0.0)
+1609: private_obj.initial_planting[district_key][private_crops][future_year] = private_obj.contract_fractions[district_key]*district_land.acreage_by_year[crops][future_year]/float(crop_life)
/*else*/ {
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1609, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_crops); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_Multiply(__pyx_t_21, __pyx_t_22); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1609, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_private_crops); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_v_future_year, __pyx_t_21, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__pyx_L39:;
}
1610:
1611:
+1612: for crop_year in range(0,crop_life):
__pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_crop_life); __Pyx_GIVEREF(__pyx_v_crop_life); PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_v_crop_life); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_21, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) { __pyx_t_21 = __pyx_t_13; __Pyx_INCREF(__pyx_t_21); __pyx_t_23 = 0; __pyx_t_24 = NULL; } else { __pyx_t_23 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_24 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1612, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; for (;;) { if (likely(!__pyx_t_24)) { if (likely(PyList_CheckExact(__pyx_t_21))) { if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_21)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_23); __Pyx_INCREF(__pyx_t_13); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1612, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_21, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } else { if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_21)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_23); __Pyx_INCREF(__pyx_t_13); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1612, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_21, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } } else { __pyx_t_13 = __pyx_t_24(__pyx_t_21); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1612, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_13); } __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+1613: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1613, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1613, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_16) {
/* … */
goto __pyx_L42;
}
+1614: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops][0]
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1614, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_private_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_13 = __pyx_v_crop_year;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1614, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_private_crops); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_GetItemInt(__pyx_t_25, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_13, __pyx_t_25) < 0)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
1615: else:
+1616: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops]
/*else*/ {
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1616, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_private_crops); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_22 = __pyx_v_crop_year;
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_22); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1616, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_private_crops); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_22, __pyx_t_11) < 0)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__pyx_L42:;
1617:
+1618: if crops != 'idle':
__pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1618, __pyx_L1_error) if (__pyx_t_16) { /* … */ }
+1619: for future_year in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1620: total_acres[future_year] += district_land.acreage_by_year[crops][future_year]
__pyx_t_20 = __pyx_v_future_year;
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_total_acres, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_crops); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_13, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_v_total_acres, __pyx_t_20, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
1621:
+1622: elif district_land.has_pmp:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1622, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_16) { /* … */ goto __pyx_L31; }
+1623: for crops in district_land.pmp_acreage:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_13 = __pyx_t_3; __Pyx_INCREF(__pyx_t_13); __pyx_t_8 = 0; __pyx_t_14 = NULL; } else { __pyx_t_8 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1623, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_13))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_13)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1623, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_13)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1623, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1623, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1624: for private_crops in private_obj.crop_list:
if (unlikely(__pyx_v_private_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1624, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->crop_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_18); __Pyx_INCREF(__pyx_t_21); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 1624, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_3, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1625: if private_crops == crops:
__pyx_t_21 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1625, __pyx_L1_error) __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_16) { /* … */ }
+1626: private_acres += private_obj.contract_fractions[district_key]*district_land.pmp_acreage[crops]
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1626, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Multiply(__pyx_t_21, __pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = PyNumber_InPlaceAdd(__pyx_v_private_acres, __pyx_t_12); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF_SET(__pyx_v_private_acres, __pyx_t_22);
__pyx_t_22 = 0;
+1627: district_land.private_acreage[private_crops] += private_obj.contract_fractions[district_key]*district_land.pmp_acreage[crops]
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(__pyx_v_private_crops); __pyx_t_12 = __pyx_v_private_crops; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1627, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_crops); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Multiply(__pyx_t_11, __pyx_t_25); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_15); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_12, __pyx_t_25) < 0)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+1628: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1628, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1628, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1628, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_16) {
/* … */
goto __pyx_L51;
}
+1629: for future_year in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1630: private_obj.initial_planting[district_key][private_crops][future_year] = private_obj.contract_fractions[district_key]*district_land.pmp_acreage[crops]/float(crop_life)
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1630, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_crops); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Multiply(__pyx_t_22, __pyx_t_25); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_22 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_25); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1630, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_private_crops); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_12, __pyx_v_future_year, __pyx_t_22, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
1631: else:
+1632: private_obj.initial_planting[district_key][private_crops] = private_obj.contract_fractions[district_key]*district_land.pmp_acreage[crops]/float(crop_life)
/*else*/ {
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1632, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_crops); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Multiply(__pyx_t_22, __pyx_t_25); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_22 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_25); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1632, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
if (unlikely(PyObject_SetItem(__pyx_t_25, __pyx_v_private_crops, __pyx_t_22) < 0)) __PYX_ERR(0, 1632, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__pyx_L51:;
1633:
+1634: for crop_year in range(0,crop_life):
__pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_crop_life); __Pyx_GIVEREF(__pyx_v_crop_life); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_v_crop_life); __pyx_t_25 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_22, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) { __pyx_t_22 = __pyx_t_25; __Pyx_INCREF(__pyx_t_22); __pyx_t_23 = 0; __pyx_t_24 = NULL; } else { __pyx_t_23 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_24 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1634, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; for (;;) { if (likely(!__pyx_t_24)) { if (likely(PyList_CheckExact(__pyx_t_22))) { if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_25 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_23); __Pyx_INCREF(__pyx_t_25); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1634, __pyx_L1_error) #else __pyx_t_25 = PySequence_ITEM(__pyx_t_22, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); #endif } else { if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_23); __Pyx_INCREF(__pyx_t_25); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1634, __pyx_L1_error) #else __pyx_t_25 = PySequence_ITEM(__pyx_t_22, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); #endif } } else { __pyx_t_25 = __pyx_t_24(__pyx_t_22); if (unlikely(!__pyx_t_25)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1634, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_25); } __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_25); __pyx_t_25 = 0; /* … */ } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+1635: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1635, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1635, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1635, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
if (__pyx_t_16) {
/* … */
goto __pyx_L56;
}
+1636: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops][0]
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1636, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_private_crops); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_25 = __pyx_v_crop_year;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_25); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1636, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_25, __pyx_t_11) < 0)) __PYX_ERR(0, 1636, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
1637: else:
+1638: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops]
/*else*/ {
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1638, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_private_crops); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_12 = __pyx_v_crop_year;
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1638, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_25, __pyx_t_12, __pyx_t_21) < 0)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
}
__pyx_L56:;
1639:
+1640: if crops != 'idle':
__pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1640, __pyx_L1_error) if (__pyx_t_16) { /* … */ }
+1641: total_acres += district_land.pmp_acreage[crops]
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_crops); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_total_acres, __pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF_SET(__pyx_v_total_acres, __pyx_t_3); __pyx_t_3 = 0;
1642:
1643:
1644: else:
+1645: for i,crops in enumerate(district_land.crop_list):
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__pyx_t_13 = __pyx_int_0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_22 = __pyx_t_3; __Pyx_INCREF(__pyx_t_22); __pyx_t_8 = 0;
__pyx_t_14 = NULL;
} else {
__pyx_t_8 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1645, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_14)) {
if (likely(PyList_CheckExact(__pyx_t_22))) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1645, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_22, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1645, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_22, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_14(__pyx_t_22);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1645, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_INCREF(__pyx_t_13);
__Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_13);
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_13, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_13);
__pyx_t_13 = __pyx_t_3;
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__pyx_L31:;
+1646: for private_crops in private_obj.crop_list:
if (unlikely(__pyx_v_private_obj->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1646, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->crop_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_18); __Pyx_INCREF(__pyx_t_25); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 1646, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_3, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1647: if private_crops == crops:
__pyx_t_25 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (__pyx_t_16) { /* … */ }
+1648: private_acres += private_obj.contract_fractions[district_key]*district_land.acreage['BN'][i]
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1648, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_BN); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Multiply(__pyx_t_25, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_private_acres, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_private_acres, __pyx_t_12);
__pyx_t_12 = 0;
+1649: district_land.private_acreage[private_crops] += private_obj.contract_fractions[district_key]*district_land.acreage['BN'][i]
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_private_crops); __pyx_t_21 = __pyx_v_private_crops; __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1649, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_BN); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_v_i); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyNumber_Multiply(__pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_t_26); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_21, __pyx_t_11) < 0)) __PYX_ERR(0, 1649, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1650: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1650, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1650, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1650, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_16) {
/* … */
goto __pyx_L63;
}
+1651: for future_year in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1652: private_obj.initial_planting[district_key][private_crops][future_year] = private_obj.contract_fractions[district_key]*district_land.acreage['BN'][i]/float(crop_life)
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1652, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_BN); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_i); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_Multiply(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1652, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_v_future_year, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
1653: else:
+1654: private_obj.initial_planting[district_key][private_crops] = private_obj.contract_fractions[district_key]*district_land.acreage['BN'][i]/float(crop_life)
/*else*/ {
if (unlikely(__pyx_v_private_obj->contract_fractions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1654, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->contract_fractions, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_BN); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_i); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Multiply(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_21, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1654, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_private_crops, __pyx_t_12) < 0)) __PYX_ERR(0, 1654, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_L63:;
1655:
+1656: for crop_year in range(0,crop_life):
__pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_crop_life); __Pyx_GIVEREF(__pyx_v_crop_life); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_crop_life); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_12 = __pyx_t_11; __Pyx_INCREF(__pyx_t_12); __pyx_t_23 = 0; __pyx_t_24 = NULL; } else { __pyx_t_23 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_24 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1656, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_24)) { if (likely(PyList_CheckExact(__pyx_t_12))) { if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_23); __Pyx_INCREF(__pyx_t_11); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1656, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_12, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_23); __Pyx_INCREF(__pyx_t_11); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 1656, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_12, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_24(__pyx_t_12); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1656, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_11); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1657: if private_obj.has_pesticide[district_key]:
if (unlikely(__pyx_v_private_obj->has_pesticide == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1657, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->has_pesticide, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__pyx_t_16) {
/* … */
goto __pyx_L68;
}
+1658: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops][0]
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1658, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_private_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_11 = __pyx_v_crop_year;
__pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_11); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1658, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_private_crops); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_t_25); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_11, __pyx_t_15) < 0)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
1659: else:
+1660: private_obj.acreage[district_key][private_crops][crop_year] += private_obj.initial_planting[district_key][private_crops]
/*else*/ {
if (unlikely(__pyx_v_private_obj->acreage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1660, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->acreage, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_INCREF(__pyx_v_crop_year);
__pyx_t_21 = __pyx_v_crop_year;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_private_obj->initial_planting == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1660, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->initial_planting, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_private_crops); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_21, __pyx_t_25) < 0)) __PYX_ERR(0, 1660, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__pyx_L68:;
1661:
1662:
+1663: if crops != 'idle':
__pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1663, __pyx_L1_error) if (__pyx_t_16) { /* … */ }
+1664: total_acres += district_land.acreage['BN'][i]
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_BN); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_total_acres, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_total_acres, __pyx_t_12); __pyx_t_12 = 0;
1665:
+1666: if district_land.has_pesticide:
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_16) { /* … */ goto __pyx_L70; }
+1667: for future_year in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1668: private_obj.private_fraction[district_key][future_year] += private_acres[future_year]/total_acres[future_year]
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1668, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_20 = __pyx_v_future_year;
__pyx_t_22 = __Pyx_GetItemInt(__pyx_t_13, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_private_acres, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_total_acres, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_20, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1668, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1669: district_land.private_fraction[future_year] += private_acres[future_year]/total_acres[future_year]
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_20 = __pyx_v_future_year; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_13, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_private_acres, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_22 = __Pyx_GetItemInt(__pyx_v_total_acres, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_20, __pyx_t_22, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; }
1670: #if district_land.private_fraction[future_year] > 1.0:
1671: #print("You have overallocated private lands in " + district_land.key)
1672: else:
+1673: for future_year in range(0, self.number_years):
/*else*/ {
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_year = __pyx_t_19;
+1674: private_obj.private_fraction[district_key][future_year] += private_acres/total_acres
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1674, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_20 = __pyx_v_future_year;
__pyx_t_22 = __Pyx_GetItemInt(__pyx_t_13, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_v_private_acres, __pyx_v_total_acres); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_20, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
1675:
+1676: district_land.private_fraction[0] += private_acres/total_acres
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_8 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_13, __pyx_t_8, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_v_private_acres, __pyx_v_total_acres); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_8, __pyx_t_22, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_L70:;
1677: #if district_land.private_fraction > 1.0:
1678: #print("You have overallocated private lands in " + district_land.key)
1679:
+1680: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1680, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1680, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1680, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1680, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1681: private_obj.contract_fraction = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->contract_fraction); __Pyx_DECREF(__pyx_v_private_obj->contract_fraction); __pyx_v_private_obj->contract_fraction = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1682: private_obj.private_fraction = {}
__pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->private_fraction); __Pyx_DECREF(__pyx_v_private_obj->private_fraction); __pyx_v_private_obj->private_fraction = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1683: private_obj.contract_list = []
__pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __Pyx_GOTREF(__pyx_v_private_obj->contract_list); __Pyx_DECREF(__pyx_v_private_obj->contract_list); __pyx_v_private_obj->contract_list = ((PyObject*)__pyx_t_10); __pyx_t_10 = 0;
+1684: for pump_keys in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1684, __pyx_L1_error)
}
__pyx_t_10 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1684, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1684, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_XDECREF_SET(__pyx_v_pump_keys, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1685: pump = self.district_keys[pump_keys]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1685, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_pump_keys); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF_SET(__pyx_v_pump, __pyx_t_13);
__pyx_t_13 = 0;
+1686: private_obj.private_fraction[pump_keys] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_np); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_3, __pyx_t_22) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_22); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1686, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->private_fraction, __pyx_v_pump_keys, __pyx_t_13) < 0)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1687: for future_years in range(0, self.number_years):
__pyx_t_5 = __pyx_v_self->number_years;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_6; __pyx_t_19+=1) {
__pyx_v_future_years = __pyx_t_19;
+1688: private_obj.private_fraction[pump_keys][future_years] = private_obj.pump_out_fraction[pump_keys]
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1688, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_pump_keys); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1688, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1688, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_pump_keys); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1688, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__Pyx_SetItemInt(__pyx_t_12, __pyx_v_future_years, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1688, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
+1689: pump.private_fraction[0] += private_obj.pump_out_fraction[pump_keys]
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_pump, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_8 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_13, __pyx_t_8, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1689, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_pump_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_8, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1690: for contract_key in pump.contract_list:
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_pump, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) { __pyx_t_3 = __pyx_t_13; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_14 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1690, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_13); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1690, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_13); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1690, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } } else { __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1690, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_13); } __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1691: if contract_key not in private_obj.contract_list:
__pyx_t_16 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract_key, __pyx_v_private_obj->contract_list, Py_NE)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 1691, __pyx_L1_error) __pyx_t_4 = (__pyx_t_16 != 0); if (__pyx_t_4) { /* … */ }
+1692: private_obj.contract_list.append(contract_key)
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 1692, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyList_Append(__pyx_v_private_obj->contract_list, __pyx_v_contract_key); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1692, __pyx_L1_error)
1693:
1694:
+1695: def determine_recharge_recovery_risk(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_39determine_recharge_recovery_risk(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_39determine_recharge_recovery_risk(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("determine_recharge_recovery_risk (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_38determine_recharge_recovery_risk(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_38determine_recharge_recovery_risk(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
PyObject *__pyx_v_contract_estimates = NULL;
PyObject *__pyx_v_delivery_values = NULL;
PyObject *__pyx_v_total_available = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_contracts = NULL;
long __pyx_v_future_year;
PyObject *__pyx_v_cumulative_balance = NULL;
double __pyx_v_cumulative_years;
PyObject *__pyx_v_total_delivery_record = NULL;
Py_ssize_t __pyx_v_hist_year;
PyObject *__pyx_v_private_deliveries = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_annual_balance = NULL;
CYTHON_UNUSED int __pyx_9genexpr26__pyx_v__;
CYTHON_UNUSED Py_ssize_t __pyx_9genexpr27__pyx_v__;
CYTHON_UNUSED Py_ssize_t __pyx_9genexpr28__pyx_v__;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("determine_recharge_recovery_risk", 0);
__Pyx_TraceCall("determine_recharge_recovery_risk", __pyx_f[0], 1695, 0, __PYX_ERR(0, 1695, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("calfews_src.model_cy.Model.determine_recharge_recovery_risk", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF(__pyx_v_contract_estimates);
__Pyx_XDECREF(__pyx_v_delivery_values);
__Pyx_XDECREF(__pyx_v_total_available);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_contracts);
__Pyx_XDECREF(__pyx_v_cumulative_balance);
__Pyx_XDECREF(__pyx_v_total_delivery_record);
__Pyx_XDECREF(__pyx_v_private_deliveries);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_annual_balance);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1696: cdef Contract contract_obj
1697: cdef Private private_obj
1698: cdef District district_obj
1699:
+1700: contract_estimates = pd.read_csv('calfews_src/data/input/contract_risks.csv')
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_calfews_src_data_input_contract) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_calfews_src_data_input_contract); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_contract_estimates = __pyx_t_1; __pyx_t_1 = 0;
+1701: delivery_values = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_delivery_values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1702: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1702, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1702, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1702, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1703: total_available = contract_estimates[contract_obj.key + '_contract'] + contract_estimates[contract_obj.key + '_flood'] + contract_estimates[contract_obj.key + '_carryover'] + contract_estimates[contract_obj.key + '_turnback']
__pyx_t_3 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->key, __pyx_n_u_contract_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_contract_estimates, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->key, __pyx_n_u_flood); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_contract_estimates, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->key, __pyx_n_u_carryover_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_contract_estimates, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->key, __pyx_n_u_turnback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_contract_estimates, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_total_available, __pyx_t_2); __pyx_t_2 = 0;
+1704: delivery_values[contract_obj.key] = total_available
if (unlikely(PyDict_SetItem(__pyx_v_delivery_values, __pyx_v_contract_obj->key, __pyx_v_total_available) < 0)) __PYX_ERR(0, 1704, __pyx_L1_error)
+1705: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1705, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1705, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1705, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1706: private_obj.target_annual_demand = [0. for _ in range(self.number_years)]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1706, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __pyx_v_self->number_years;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_9genexpr26__pyx_v__ = __pyx_t_8;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_))) __PYX_ERR(0, 1706, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_private_obj->target_annual_demand);
__Pyx_DECREF(__pyx_v_private_obj->target_annual_demand);
__pyx_v_private_obj->target_annual_demand = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+1707: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1707, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1707, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1708: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1708, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1708, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
+1709: for contracts in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1709, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1709, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1709, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_contracts, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1710: contract_obj = self.contract_keys[contracts]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1710, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contracts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1710, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1710, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_5));
__pyx_t_5 = 0;
+1711: for future_year in range(0, self.number_years):
__pyx_t_6 = __pyx_v_self->number_years;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_7; __pyx_t_11+=1) {
__pyx_v_future_year = __pyx_t_11;
+1712: private_obj.target_annual_demand[future_year] += np.mean(delivery_values[contract_obj.key])*district_obj.project_contract[contract_obj.name]*private_obj.private_fraction[district_key][future_year]
if (unlikely(__pyx_v_private_obj->target_annual_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1712, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_private_obj->target_annual_demand);
__pyx_t_12 = __pyx_v_private_obj->target_annual_demand;
__pyx_t_13 = __pyx_v_future_year;
if (unlikely(__pyx_t_12 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1712, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_List(__pyx_t_12, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_mean); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_16, function);
}
}
__pyx_t_14 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_15);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1712, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_15 = PyNumber_Multiply(__pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1712, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_14 = __Pyx_GetItemInt(__pyx_t_16, __pyx_v_future_year, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_Multiply(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_t_12 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1712, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_12, __pyx_t_13, __pyx_t_14, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
1713:
+1714: private_obj.delivery_risk = [0.0 for _ in range(len(total_available))]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1714, __pyx_L1_error) }
__pyx_t_9 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1714, __pyx_L1_error)
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_10; __pyx_t_18+=1) {
__pyx_9genexpr27__pyx_v__ = __pyx_t_18;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1714, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_private_obj->delivery_risk);
__Pyx_DECREF(__pyx_v_private_obj->delivery_risk);
__pyx_v_private_obj->delivery_risk = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+1715: private_obj.delivery_risk_rate = [0.0 for _ in range(len(total_available))]
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1715, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1715, __pyx_L1_error) }
__pyx_t_9 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1715, __pyx_L1_error)
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_10; __pyx_t_18+=1) {
__pyx_9genexpr28__pyx_v__ = __pyx_t_18;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1715, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_private_obj->delivery_risk_rate);
__Pyx_DECREF(__pyx_v_private_obj->delivery_risk_rate);
__pyx_v_private_obj->delivery_risk_rate = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+1716: cumulative_balance = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_cumulative_balance, __pyx_float_0_0);
+1717: cumulative_years = 0.0
__pyx_v_cumulative_years = 0.0;
+1718: total_delivery_record = np.zeros(len(total_available))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1718, __pyx_L1_error) } __pyx_t_9 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1718, __pyx_L1_error) __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_16, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_3); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF_SET(__pyx_v_total_delivery_record, __pyx_t_2); __pyx_t_2 = 0;
+1719: for hist_year in range(0, len(total_available)):
if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1719, __pyx_L1_error) }
__pyx_t_9 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1719, __pyx_L1_error)
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_10; __pyx_t_18+=1) {
__pyx_v_hist_year = __pyx_t_18;
+1720: private_deliveries = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_private_deliveries, __pyx_float_0_0);
+1721: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1721, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1721, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1721, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1722: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1722, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1722, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1722, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_14));
__pyx_t_14 = 0;
+1723: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1723, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_20 = 0;
for (;;) {
if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_20); __Pyx_INCREF(__pyx_t_3); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 1723, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_14, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1724: contract_obj = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1724, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 1724, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_3));
__pyx_t_3 = 0;
+1725: if contract_obj.type == 'contract':
__pyx_t_21 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_21 < 0)) __PYX_ERR(0, 1725, __pyx_L1_error) __pyx_t_22 = (__pyx_t_21 != 0); if (__pyx_t_22) { /* … */ goto __pyx_L25; }
+1726: private_deliveries += delivery_values[contract_obj.key][hist_year]*district_obj.project_contract[contract_obj.name]*private_obj.private_fraction[district_key][0]
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_hist_year, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1726, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Multiply(__pyx_t_16, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1726, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_v_private_deliveries, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_private_deliveries, __pyx_t_16); __pyx_t_16 = 0;
1727: else:
+1728: private_deliveries += delivery_values[contract_obj.key][hist_year]*district_obj.rights[contract_obj.name]['capacity']*private_obj.private_fraction[district_key][0]
/*else*/ {
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_16, __pyx_v_hist_year, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_district_obj->rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1728, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1728, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_16, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_private_deliveries, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_private_deliveries, __pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L25:;
1729:
+1730: total_delivery_record[hist_year] = private_deliveries
if (unlikely(__Pyx_SetItemInt(__pyx_v_total_delivery_record, __pyx_v_hist_year, __pyx_v_private_deliveries, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1730, __pyx_L1_error)
+1731: annual_balance = private_deliveries - private_obj.target_annual_demand[0]
if (unlikely(__pyx_v_private_obj->target_annual_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1731, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_private_obj->target_annual_demand, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1731, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_14 = PyNumber_Subtract(__pyx_v_private_deliveries, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1731, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_annual_balance, __pyx_t_14);
__pyx_t_14 = 0;
+1732: cumulative_balance += annual_balance
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_v_cumulative_balance, __pyx_v_annual_balance); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF_SET(__pyx_v_cumulative_balance, __pyx_t_14); __pyx_t_14 = 0;
+1733: cumulative_years += 1.0
__pyx_v_cumulative_years = (__pyx_v_cumulative_years + 1.0);
+1734: if cumulative_balance > 0.0:
__pyx_t_14 = PyObject_RichCompare(__pyx_v_cumulative_balance, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_22) { /* … */ }
+1735: cumulative_balance = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_cumulative_balance, __pyx_float_0_0);
+1736: cumulative_years = 0.0
__pyx_v_cumulative_years = 0.0;
+1737: private_obj.delivery_risk[hist_year] = cumulative_balance
if (unlikely(__pyx_v_private_obj->delivery_risk == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1737, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_private_obj->delivery_risk, __pyx_v_hist_year, __pyx_v_cumulative_balance, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 1737, __pyx_L1_error)
+1738: private_obj.delivery_risk_rate[hist_year] = cumulative_years
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_cumulative_years); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (unlikely(__pyx_v_private_obj->delivery_risk_rate == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1738, __pyx_L1_error) } if (unlikely(__Pyx_SetItemInt(__pyx_v_private_obj->delivery_risk_rate, __pyx_v_hist_year, __pyx_t_14, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 1738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; }
1739: # df = pd.DataFrame()
1740: # df['delivery_risk'] = pd.Series(x.delivery_risk)
1741: # df['deliveries'] = pd.Series(total_delivery_record)
1742: # df['average_demand'] = pd.Series(np.ones(len(x.delivery_risk))*x.target_annual_demand[0])
1743: # df.to_csv(self.results_folder + '/delivery_risk_' + x.key + '.csv')
1744:
1745:
+1746: def init_tot_recovery(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_41init_tot_recovery(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_41init_tot_recovery(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("init_tot_recovery (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_40init_tot_recovery(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_40init_tot_recovery(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_num_districts = NULL;
PyObject *__pyx_v_irr_district = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("init_tot_recovery", 0);
__Pyx_TraceCall("init_tot_recovery", __pyx_f[0], 1746, 0, __PYX_ERR(0, 1746, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.init_tot_recovery", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_num_districts);
__Pyx_XDECREF(__pyx_v_irr_district);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1747: #########################################################################################
1748: ###this function finds the total GW recovery
1749: ###capacity available to all district objects
1750: #########################################################################################
1751: cdef Private private_obj
1752: cdef District district_obj, leiu_obj
1753: cdef Waterbank waterbank_obj
1754:
+1755: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1755, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1755, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1755, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1755, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1756: district_obj.max_recovery = 0.0
__pyx_v_district_obj->max_recovery = 0.0;
+1757: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1757, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1757, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1757, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1758: private_obj.max_recovery = 0.0
__pyx_v_private_obj->max_recovery = 0.0;
+1759: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1759, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1759, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1759, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1759, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1760: private_obj.max_recovery = 0.0
__pyx_v_private_obj->max_recovery = 0.0;
1761: #each waterbank has a list of district participants -
1762: #they get credit for their ownership share of the total recovery capacity
+1763: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1763, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1763, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1763, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 1763, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1764: for district_key in waterbank_obj.participant_list:
if (unlikely(__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1764, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1764, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1764, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1765: num_districts = self.district_keys_len[district_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1765, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_5);
__pyx_t_5 = 0;
+1766: for irr_district in self.district_keys[district_key]:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1766, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1766, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1766, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1766, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_6);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1766, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1767: irr_district.max_recovery += waterbank_obj.ownership[district_key]*waterbank_obj.recovery/num_districts
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1767, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recovery); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyNumber_Multiply(__pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_v_num_districts); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery, __pyx_t_11) < 0) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
1768: #same for 'in leiu' banks (districts)
+1769: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1769, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1769, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1769, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1770: for district_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1770, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1770, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1771: num_districts = self.district_keys_len[district_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1771, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1771, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_6);
__pyx_t_6 = 0;
+1772: if district_key != leiu_obj.key:
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_v_leiu_obj->key, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1772, __pyx_L1_error) if (__pyx_t_12) { /* … */ }
+1773: for irr_district in self.district_keys[district_key]:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1773, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
__pyx_t_11 = __pyx_t_6; __Pyx_INCREF(__pyx_t_11); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1773, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_11))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1773, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1773, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
} else {
__pyx_t_6 = __pyx_t_8(__pyx_t_11);
if (unlikely(!__pyx_t_6)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1773, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_6);
}
__Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1774: irr_district.max_recovery += leiu_obj.leiu_ownership[district_key]*leiu_obj.leiu_recovery/num_districts
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1774, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_leiu_obj->leiu_recovery); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyNumber_Multiply(__pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_v_num_districts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery, __pyx_t_9) < 0) __PYX_ERR(0, 1774, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
1775:
1776:
+1777: def load_pesticide_acreage(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_43load_pesticide_acreage(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_43load_pesticide_acreage(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("load_pesticide_acreage (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_42load_pesticide_acreage(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_42load_pesticide_acreage(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
PyObject *__pyx_v_id_dict = NULL;
PyObject *__pyx_v_district_filename = NULL;
PyObject *__pyx_v_pesticide_data = NULL;
PyObject *__pyx_v_data_start_year = NULL;
PyObject *__pyx_v_crop_type = NULL;
PyObject *__pyx_v_y = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("load_pesticide_acreage", 0);
__Pyx_TraceCall("load_pesticide_acreage", __pyx_f[0], 1777, 0, __PYX_ERR(0, 1777, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.load_pesticide_acreage", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF(__pyx_v_id_dict);
__Pyx_XDECREF(__pyx_v_district_filename);
__Pyx_XDECREF(__pyx_v_pesticide_data);
__Pyx_XDECREF(__pyx_v_data_start_year);
__Pyx_XDECREF(__pyx_v_crop_type);
__Pyx_XDECREF(__pyx_v_y);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1778: cdef District district_obj
1779:
+1780: id_dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_id_dict = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1781: id_dict['ALT'] = 'Alta Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ALT, __pyx_kp_u_Alta_Irrigation_District) < 0)) __PYX_ERR(0, 1781, __pyx_L1_error)
+1782: id_dict['ARV'] = 'Arvin - Edison Water Storage District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ARV, __pyx_kp_u_Arvin_Edison_Water_Storage_Distr) < 0)) __PYX_ERR(0, 1782, __pyx_L1_error)
+1783: id_dict['BDM'] = 'Berrenda Mesa Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_BDM, __pyx_kp_u_Berrenda_Mesa_Water_District) < 0)) __PYX_ERR(0, 1783, __pyx_L1_error)
+1784: id_dict['BVA'] = 'Buena Vista Water Storage District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_BVA, __pyx_kp_u_Buena_Vista_Water_Storage_Distri) < 0)) __PYX_ERR(0, 1784, __pyx_L1_error)
+1785: id_dict['CWO'] = 'Cawelo Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_CWO, __pyx_kp_u_Cawelo_Water_District) < 0)) __PYX_ERR(0, 1785, __pyx_L1_error)
+1786: id_dict['CNS'] = 'Consolidated Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_CNS, __pyx_kp_u_Consolidated_Irrigation_District) < 0)) __PYX_ERR(0, 1786, __pyx_L1_error)
+1787: id_dict['COR'] = 'Corcoran Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_COR, __pyx_kp_u_Corcoran_Irrigation_District) < 0)) __PYX_ERR(0, 1787, __pyx_L1_error)
+1788: id_dict['DLE'] = 'Delano - Earlimart Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_DLE, __pyx_kp_u_Delano_Earlimart_Irrigation_Dist) < 0)) __PYX_ERR(0, 1788, __pyx_L1_error)
+1789: id_dict['DLR'] = 'Dudley Ridge Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_DLR, __pyx_kp_u_Dudley_Ridge_Water_District) < 0)) __PYX_ERR(0, 1789, __pyx_L1_error)
+1790: id_dict['FRB'] = 'Firebaugh Canal Company'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_FRB, __pyx_kp_u_Firebaugh_Canal_Company) < 0)) __PYX_ERR(0, 1790, __pyx_L1_error)
+1791: id_dict['FRS'] = 'Fresno Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_FRS, __pyx_kp_u_Fresno_Irrigation_District) < 0)) __PYX_ERR(0, 1791, __pyx_L1_error)
+1792: id_dict['JMS'] = 'James Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_JMS, __pyx_kp_u_James_Irrigation_District) < 0)) __PYX_ERR(0, 1792, __pyx_L1_error)
+1793: id_dict['KRT'] = 'Kern - Tulare Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KRT, __pyx_kp_u_Kern_Tulare_Water_District) < 0)) __PYX_ERR(0, 1793, __pyx_L1_error)
+1794: id_dict['KND'] = 'Kern Delta Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KND, __pyx_kp_u_Kern_Delta_Water_District) < 0)) __PYX_ERR(0, 1794, __pyx_L1_error)
+1795: id_dict['KRWD'] = 'Kings River Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KRWD, __pyx_kp_u_Kings_River_Water_District) < 0)) __PYX_ERR(0, 1795, __pyx_L1_error)
+1796: id_dict['LND'] = 'Lindmore Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LND, __pyx_kp_u_Lindmore_Irrigation_District) < 0)) __PYX_ERR(0, 1796, __pyx_L1_error)
+1797: id_dict['LHL'] = 'Lost Hills Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LHL, __pyx_kp_u_Lost_Hills_Water_District) < 0)) __PYX_ERR(0, 1797, __pyx_L1_error)
+1798: id_dict['LWT'] = 'Lower Tule River Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LWT, __pyx_kp_u_Lower_Tule_River_Irrigation_Dist) < 0)) __PYX_ERR(0, 1798, __pyx_L1_error)
+1799: id_dict['NKN'] = 'North Kern Water Storage District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_NKN, __pyx_kp_u_North_Kern_Water_Storage_Distric) < 0)) __PYX_ERR(0, 1799, __pyx_L1_error)
+1800: id_dict['ORC'] = 'Orange Cove Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ORC, __pyx_kp_u_Orange_Cove_Irrigation_District) < 0)) __PYX_ERR(0, 1800, __pyx_L1_error)
+1801: id_dict['PNC'] = 'Panoche Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_PNC, __pyx_kp_u_Panoche_Water_District) < 0)) __PYX_ERR(0, 1801, __pyx_L1_error)
+1802: id_dict['PIX'] = 'Pixley Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_PIX, __pyx_kp_u_Pixley_Irrigation_District) < 0)) __PYX_ERR(0, 1802, __pyx_L1_error)
+1803: id_dict['RVD'] = 'Riverdale Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_RVD, __pyx_kp_u_Riverdale_Irrigation_District) < 0)) __PYX_ERR(0, 1803, __pyx_L1_error)
+1804: id_dict['SMI'] = 'Semitropic Water Service District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_SMI, __pyx_kp_u_Semitropic_Water_Service_Distric) < 0)) __PYX_ERR(0, 1804, __pyx_L1_error)
+1805: id_dict['SFW'] = 'Shafter - Wasco Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_SFW, __pyx_kp_u_Shafter_Wasco_Irrigation_Distric) < 0)) __PYX_ERR(0, 1805, __pyx_L1_error)
+1806: id_dict['TUL'] = 'Tulare Irrigation District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_TUL, __pyx_kp_u_Tulare_Irrigation_District) < 0)) __PYX_ERR(0, 1806, __pyx_L1_error)
+1807: id_dict['TLB'] = 'Tulare Lake Basin Water Storage District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_TLB, __pyx_kp_u_Tulare_Lake_Basin_Water_Storage) < 0)) __PYX_ERR(0, 1807, __pyx_L1_error)
+1808: id_dict['WSL'] = 'Westlands Water District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_WSL, __pyx_kp_u_Westlands_Water_District) < 0)) __PYX_ERR(0, 1808, __pyx_L1_error)
+1809: id_dict['WRM'] = 'Wheeler Ridge - Maricopa Water Storage District'
if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_WRM, __pyx_kp_u_Wheeler_Ridge_Maricopa_Water_Sto) < 0)) __PYX_ERR(0, 1809, __pyx_L1_error)
+1810: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1810, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1810, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1810, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1810, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1811: if district_obj.key in id_dict:
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_district_obj->key, __pyx_v_id_dict, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1811, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* … */ }
+1812: district_obj.has_pesticide = 1
__pyx_v_district_obj->has_pesticide = 1;
+1813: district_obj.acreage_by_year = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_district_obj->acreage_by_year); __Pyx_DECREF(__pyx_v_district_obj->acreage_by_year); __pyx_v_district_obj->acreage_by_year = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1814: district_filename = id_dict[district_obj.key]
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_id_dict, __pyx_v_district_obj->key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_district_filename, __pyx_t_3); __pyx_t_3 = 0;
+1815: pesticide_data = pd.read_csv('calfews_src/data/input/pesticide_acreage/' + district_filename + '.csv', index_col = 0)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_kp_u_calfews_src_data_input_pesticide, __pyx_v_district_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_kp_u_csv); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1815, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_pesticide_data, __pyx_t_8); __pyx_t_8 = 0;
+1816: data_start_year = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_XDECREF_SET(__pyx_v_data_start_year, __pyx_int_0);
+1817: for crop_type in pesticide_data:
if (likely(PyList_CheckExact(__pyx_v_pesticide_data)) || PyTuple_CheckExact(__pyx_v_pesticide_data)) { __pyx_t_8 = __pyx_v_pesticide_data; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_pesticide_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1817, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1817, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1817, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1817, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_crop_type, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1818: district_obj.acreage_by_year[crop_type] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_7 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_district_obj->acreage_by_year == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1818, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->acreage_by_year, __pyx_v_crop_type, __pyx_t_7) < 0)) __PYX_ERR(0, 1818, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1819: for y in range(0, self.number_years):
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1819, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1819, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1819, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_13(__pyx_t_6); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1819, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1820: district_obj.acreage_by_year[crop_type][y] = pesticide_data[crop_type][y+data_start_year]
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pesticide_data, __pyx_v_crop_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyNumber_Add(__pyx_v_y, __pyx_v_data_start_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_district_obj->acreage_by_year == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1820, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->acreage_by_year, __pyx_v_crop_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_y, __pyx_t_11) < 0)) __PYX_ERR(0, 1820, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
1821:
1822:
+1823: def load_pmp_model(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_45load_pmp_model(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_45load_pmp_model(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("load_pmp_model (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_44load_pmp_model(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_44load_pmp_model(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
CYTHON_UNUSED PyObject *__pyx_v_color_list = NULL;
PyObject *__pyx_v_pmp_coef = NULL;
PyObject *__pyx_v_pmp_coef_list = NULL;
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_v_econ_data = NULL;
PyObject *__pyx_v_econ_data_list = NULL;
CYTHON_UNUSED PyObject *__pyx_v_legend_dict = NULL;
PyObject *__pyx_v_xx = NULL;
PyObject *__pyx_v_district = NULL;
PyObject *__pyx_v_district_id = NULL;
PyObject *__pyx_v_land_constraint = NULL;
PyObject *__pyx_v_crop = NULL;
PyObject *__pyx_v_water_constraint_by_source = NULL;
PyObject *__pyx_v_source = NULL;
PyObject *__pyx_v_x0 = NULL;
PyObject *__pyx_v_observed_acreage = NULL;
PyObject *__pyx_v_district_crops = NULL;
PyObject *__pyx_v_i = NULL;
PyObject *__pyx_v_calculated = NULL;
PyObject *__pyx_v_observed = NULL;
PyObject *__pyx_v_total_land = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("load_pmp_model", 0);
__Pyx_TraceCall("load_pmp_model", __pyx_f[0], 1823, 0, __PYX_ERR(0, 1823, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("calfews_src.model_cy.Model.load_pmp_model", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF(__pyx_v_color_list);
__Pyx_XDECREF(__pyx_v_pmp_coef);
__Pyx_XDECREF(__pyx_v_pmp_coef_list);
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XDECREF(__pyx_v_econ_data);
__Pyx_XDECREF(__pyx_v_econ_data_list);
__Pyx_XDECREF(__pyx_v_legend_dict);
__Pyx_XDECREF(__pyx_v_xx);
__Pyx_XDECREF(__pyx_v_district);
__Pyx_XDECREF(__pyx_v_district_id);
__Pyx_XDECREF(__pyx_v_land_constraint);
__Pyx_XDECREF(__pyx_v_crop);
__Pyx_XDECREF(__pyx_v_water_constraint_by_source);
__Pyx_XDECREF(__pyx_v_source);
__Pyx_XDECREF(__pyx_v_x0);
__Pyx_XDECREF(__pyx_v_observed_acreage);
__Pyx_XDECREF(__pyx_v_district_crops);
__Pyx_XDECREF(__pyx_v_i);
__Pyx_XDECREF(__pyx_v_calculated);
__Pyx_XDECREF(__pyx_v_observed);
__Pyx_XDECREF(__pyx_v_total_land);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1824: cdef District district_obj
1825:
+1826: color_list = ['black', 'gray', 'firebrick', 'red', 'darksalmon', 'sandybrown', 'gold', 'chartreuse', 'seagreen', 'deepskyblue', 'royalblue', 'darkorchid', 'darkcyan', 'crimson', 'fuchsia', 'cyan', 'green', 'yellowgreen', 'coral', 'orange', 'hotpink', 'thistle', 'azure', 'yellow', 'dimgray', 'turquoise', 'navy', 'mediumspringgreen']
__pyx_t_1 = PyList_New(28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_black); __Pyx_GIVEREF(__pyx_n_u_black); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_black); __Pyx_INCREF(__pyx_n_u_gray); __Pyx_GIVEREF(__pyx_n_u_gray); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_gray); __Pyx_INCREF(__pyx_n_u_firebrick); __Pyx_GIVEREF(__pyx_n_u_firebrick); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_firebrick); __Pyx_INCREF(__pyx_n_u_red); __Pyx_GIVEREF(__pyx_n_u_red); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_red); __Pyx_INCREF(__pyx_n_u_darksalmon); __Pyx_GIVEREF(__pyx_n_u_darksalmon); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_darksalmon); __Pyx_INCREF(__pyx_n_u_sandybrown); __Pyx_GIVEREF(__pyx_n_u_sandybrown); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_sandybrown); __Pyx_INCREF(__pyx_n_u_gold); __Pyx_GIVEREF(__pyx_n_u_gold); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gold); __Pyx_INCREF(__pyx_n_u_chartreuse); __Pyx_GIVEREF(__pyx_n_u_chartreuse); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_chartreuse); __Pyx_INCREF(__pyx_n_u_seagreen); __Pyx_GIVEREF(__pyx_n_u_seagreen); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_seagreen); __Pyx_INCREF(__pyx_n_u_deepskyblue); __Pyx_GIVEREF(__pyx_n_u_deepskyblue); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_deepskyblue); __Pyx_INCREF(__pyx_n_u_royalblue); __Pyx_GIVEREF(__pyx_n_u_royalblue); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_u_royalblue); __Pyx_INCREF(__pyx_n_u_darkorchid); __Pyx_GIVEREF(__pyx_n_u_darkorchid); PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_u_darkorchid); __Pyx_INCREF(__pyx_n_u_darkcyan); __Pyx_GIVEREF(__pyx_n_u_darkcyan); PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_u_darkcyan); __Pyx_INCREF(__pyx_n_u_crimson); __Pyx_GIVEREF(__pyx_n_u_crimson); PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_u_crimson); __Pyx_INCREF(__pyx_n_u_fuchsia); __Pyx_GIVEREF(__pyx_n_u_fuchsia); PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_u_fuchsia); __Pyx_INCREF(__pyx_n_u_cyan); __Pyx_GIVEREF(__pyx_n_u_cyan); PyList_SET_ITEM(__pyx_t_1, 15, __pyx_n_u_cyan); __Pyx_INCREF(__pyx_n_u_green); __Pyx_GIVEREF(__pyx_n_u_green); PyList_SET_ITEM(__pyx_t_1, 16, __pyx_n_u_green); __Pyx_INCREF(__pyx_n_u_yellowgreen); __Pyx_GIVEREF(__pyx_n_u_yellowgreen); PyList_SET_ITEM(__pyx_t_1, 17, __pyx_n_u_yellowgreen); __Pyx_INCREF(__pyx_n_u_coral); __Pyx_GIVEREF(__pyx_n_u_coral); PyList_SET_ITEM(__pyx_t_1, 18, __pyx_n_u_coral); __Pyx_INCREF(__pyx_n_u_orange); __Pyx_GIVEREF(__pyx_n_u_orange); PyList_SET_ITEM(__pyx_t_1, 19, __pyx_n_u_orange); __Pyx_INCREF(__pyx_n_u_hotpink); __Pyx_GIVEREF(__pyx_n_u_hotpink); PyList_SET_ITEM(__pyx_t_1, 20, __pyx_n_u_hotpink); __Pyx_INCREF(__pyx_n_u_thistle); __Pyx_GIVEREF(__pyx_n_u_thistle); PyList_SET_ITEM(__pyx_t_1, 21, __pyx_n_u_thistle); __Pyx_INCREF(__pyx_n_u_azure); __Pyx_GIVEREF(__pyx_n_u_azure); PyList_SET_ITEM(__pyx_t_1, 22, __pyx_n_u_azure); __Pyx_INCREF(__pyx_n_u_yellow); __Pyx_GIVEREF(__pyx_n_u_yellow); PyList_SET_ITEM(__pyx_t_1, 23, __pyx_n_u_yellow); __Pyx_INCREF(__pyx_n_u_dimgray); __Pyx_GIVEREF(__pyx_n_u_dimgray); PyList_SET_ITEM(__pyx_t_1, 24, __pyx_n_u_dimgray); __Pyx_INCREF(__pyx_n_u_turquoise); __Pyx_GIVEREF(__pyx_n_u_turquoise); PyList_SET_ITEM(__pyx_t_1, 25, __pyx_n_u_turquoise); __Pyx_INCREF(__pyx_n_u_navy); __Pyx_GIVEREF(__pyx_n_u_navy); PyList_SET_ITEM(__pyx_t_1, 26, __pyx_n_u_navy); __Pyx_INCREF(__pyx_n_u_mediumspringgreen); __Pyx_GIVEREF(__pyx_n_u_mediumspringgreen); PyList_SET_ITEM(__pyx_t_1, 27, __pyx_n_u_mediumspringgreen); __pyx_v_color_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1827:
+1828: pmp_coef = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_pmp_coef = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1829: pmp_coef_list = ['TAU', 'GAMMA', 'ETA', 'DELTA', 'BETA', 'LEONTIEF', 'INPUTS', 'REV']
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_TAU); __Pyx_GIVEREF(__pyx_n_u_TAU); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_TAU); __Pyx_INCREF(__pyx_n_u_GAMMA); __Pyx_GIVEREF(__pyx_n_u_GAMMA); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_GAMMA); __Pyx_INCREF(__pyx_n_u_ETA); __Pyx_GIVEREF(__pyx_n_u_ETA); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ETA); __Pyx_INCREF(__pyx_n_u_DELTA); __Pyx_GIVEREF(__pyx_n_u_DELTA); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_DELTA); __Pyx_INCREF(__pyx_n_u_BETA); __Pyx_GIVEREF(__pyx_n_u_BETA); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_BETA); __Pyx_INCREF(__pyx_n_u_LEONTIEF); __Pyx_GIVEREF(__pyx_n_u_LEONTIEF); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_LEONTIEF); __Pyx_INCREF(__pyx_n_u_INPUTS); __Pyx_GIVEREF(__pyx_n_u_INPUTS); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_INPUTS); __Pyx_INCREF(__pyx_n_u_REV); __Pyx_GIVEREF(__pyx_n_u_REV); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_REV); __pyx_v_pmp_coef_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1830: for x in pmp_coef_list:
__pyx_t_1 = __pyx_v_pmp_coef_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1830, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1831: pmp_coef[x] = pd.read_csv('calfews_src/data/input/pmp_modelling/BASE' + x + '.csv', index_col = None)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_kp_u_calfews_src_data_input_pmp_model, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_kp_u_csv); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_index_col, Py_None) < 0) __PYX_ERR(0, 1831, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(PyDict_SetItem(__pyx_v_pmp_coef, __pyx_v_x, __pyx_t_6) < 0)) __PYX_ERR(0, 1831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1832:
+1833: econ_data = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_econ_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1834: econ_data_list = ['PRICE', 'WSOU', 'WCST', 'LANDCOST', 'LABOR', 'SUPPL']
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_PRICE); __Pyx_GIVEREF(__pyx_n_u_PRICE); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_PRICE); __Pyx_INCREF(__pyx_n_u_WSOU); __Pyx_GIVEREF(__pyx_n_u_WSOU); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_WSOU); __Pyx_INCREF(__pyx_n_u_WCST); __Pyx_GIVEREF(__pyx_n_u_WCST); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WCST); __Pyx_INCREF(__pyx_n_u_LANDCOST); __Pyx_GIVEREF(__pyx_n_u_LANDCOST); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_LANDCOST); __Pyx_INCREF(__pyx_n_u_LABOR); __Pyx_GIVEREF(__pyx_n_u_LABOR); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_LABOR); __Pyx_INCREF(__pyx_n_u_SUPPL); __Pyx_GIVEREF(__pyx_n_u_SUPPL); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_SUPPL); __pyx_v_econ_data_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1835: for x in econ_data_list:
__pyx_t_1 = __pyx_v_econ_data_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1835, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1836: econ_data[x] = pd.read_excel('calfews_src/data/input/pmp_modelling/Aligned_OAE_Kern_V05.xlsx', sheet_name = x, index_col = None)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_read_excel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_sheet_name, __pyx_v_x) < 0) __PYX_ERR(0, 1836, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_index_col, Py_None) < 0) __PYX_ERR(0, 1836, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__23, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyDict_SetItem(__pyx_v_econ_data, __pyx_v_x, __pyx_t_3) < 0)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_calfews_src_data_input_pmp_model_2); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23);
1837:
+1838: self.district_codes = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes, __pyx_t_1) < 0) __PYX_ERR(0, 1838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1839: self.district_codes['D02'] = 'KND'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D02, __pyx_n_u_KND) < 0)) __PYX_ERR(0, 1839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1840: self.district_codes['D03'] = 'WRM'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D03, __pyx_n_u_WRM) < 0)) __PYX_ERR(0, 1840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1841: self.district_codes['D04'] = 'WKN'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D04, __pyx_n_u_WKN) < 0)) __PYX_ERR(0, 1841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1842: self.district_codes['D05'] = 'BDM'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D05, __pyx_n_u_BDM) < 0)) __PYX_ERR(0, 1842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1843: self.district_codes['D06'] = 'SMI'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D06, __pyx_n_u_SMI) < 0)) __PYX_ERR(0, 1843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1844: self.district_codes['D07'] = 'RRB'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D07, __pyx_n_u_RRB) < 0)) __PYX_ERR(0, 1844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1845: self.district_codes['D08'] = 'BVA'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D08, __pyx_n_u_BVA) < 0)) __PYX_ERR(0, 1845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1846: self.district_codes['D09'] = 'CWO'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D09, __pyx_n_u_CWO) < 0)) __PYX_ERR(0, 1846, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1847: self.district_codes['D10'] = 'HML'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D10, __pyx_n_u_HML) < 0)) __PYX_ERR(0, 1847, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1848: self.district_codes['D11'] = 'LHL'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D11, __pyx_n_u_LHL) < 0)) __PYX_ERR(0, 1848, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1849: self.district_codes['fk01'] = 'DLE'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk01, __pyx_n_u_DLE) < 0)) __PYX_ERR(0, 1849, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1850: self.district_codes['fk02'] = 'EXE'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk02, __pyx_n_u_EXE) < 0)) __PYX_ERR(0, 1850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1851: self.district_codes['fk03'] = 'KRT'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk03, __pyx_n_u_KRT) < 0)) __PYX_ERR(0, 1851, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1852: self.district_codes['fk04'] = 'LND'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk04, __pyx_n_u_LND) < 0)) __PYX_ERR(0, 1852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1853: self.district_codes['fk05'] = 'LDS'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk05, __pyx_n_u_LDS) < 0)) __PYX_ERR(0, 1853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1854: self.district_codes['fk06'] = 'LWT'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk06, __pyx_n_u_LWT) < 0)) __PYX_ERR(0, 1854, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1855: self.district_codes['fk07'] = 'PRT'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk07, __pyx_n_u_PRT) < 0)) __PYX_ERR(0, 1855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1856: self.district_codes['fk08'] = 'SAU'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk08, __pyx_n_u_SAU) < 0)) __PYX_ERR(0, 1856, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1857: self.district_codes['fk09'] = 'SFW'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk09, __pyx_n_u_SFW) < 0)) __PYX_ERR(0, 1857, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1858: self.district_codes['fk10'] = 'SSJ'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk10, __pyx_n_u_SSJ) < 0)) __PYX_ERR(0, 1858, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1859: self.district_codes['fk11'] = 'TPD'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk11, __pyx_n_u_TPD) < 0)) __PYX_ERR(0, 1859, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1860: self.district_codes['fk12'] = 'TBA'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk12, __pyx_n_u_TBA) < 0)) __PYX_ERR(0, 1860, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1861: self.district_codes['fk13'] = 'TLR'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk13, __pyx_n_u_TLR) < 0)) __PYX_ERR(0, 1861, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1862: self.district_codes['fk14'] = 'VAN'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk14, __pyx_n_u_VAN) < 0)) __PYX_ERR(0, 1862, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1863: self.district_codes['ot1'] = 'DLR'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot1, __pyx_n_u_DLR) < 0)) __PYX_ERR(0, 1863, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1864: self.district_codes['ot2'] = 'NKN'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot2, __pyx_n_u_NKN) < 0)) __PYX_ERR(0, 1864, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1865: self.district_codes['ot3'] = 'OLC'
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot3, __pyx_n_u_OLC) < 0)) __PYX_ERR(0, 1865, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1866:
+1867: self.source_codes = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes, __pyx_t_1) < 0) __PYX_ERR(0, 1867, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1868: self.source_codes['SWP'] = ['tableA',]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_tableA); __Pyx_GIVEREF(__pyx_n_u_tableA); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_tableA); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_SWP, __pyx_t_1) < 0)) __PYX_ERR(0, 1868, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1869: self.source_codes['CVP'] = ['cvpdelta',]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_cvpdelta); __Pyx_GIVEREF(__pyx_n_u_cvpdelta); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_cvpdelta); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CVP, __pyx_t_1) < 0)) __PYX_ERR(0, 1869, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1870: self.source_codes['CLASS1'] = ['friant1',]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_friant1); __Pyx_GIVEREF(__pyx_n_u_friant1); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_friant1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CLASS1, __pyx_t_1) < 0)) __PYX_ERR(0, 1870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1871: self.source_codes['CLASS2'] = ['friant2',]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_friant2); __Pyx_GIVEREF(__pyx_n_u_friant2); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_friant2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CLASS2, __pyx_t_1) < 0)) __PYX_ERR(0, 1871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1872: self.source_codes['LDIV'] = ['kern', 'kings', 'tule', 'kaweah']
__pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_kern); __Pyx_GIVEREF(__pyx_n_u_kern); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_kern); __Pyx_INCREF(__pyx_n_u_kings); __Pyx_GIVEREF(__pyx_n_u_kings); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kings); __Pyx_INCREF(__pyx_n_u_tule); __Pyx_GIVEREF(__pyx_n_u_tule); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_tule); __Pyx_INCREF(__pyx_n_u_kaweah); __Pyx_GIVEREF(__pyx_n_u_kaweah); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_kaweah); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_LDIV, __pyx_t_1) < 0)) __PYX_ERR(0, 1872, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1873: legend_dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_legend_dict = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1874: xx = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_xx = __pyx_int_0;
+1875: for district in self.district_codes:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_7 = NULL; } else { __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1875, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1875, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1875, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1875, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1876: district_id = self.district_codes[district]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_district); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_district_id, __pyx_t_6); __pyx_t_6 = 0;
+1877: if district_id in self.district_keys:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1877, __pyx_L1_error)
}
__pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_v_district_id, __pyx_v_self->district_keys, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1877, __pyx_L1_error)
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
/* … */
}
+1878: district_obj = self.district_keys[district_id]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1878, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1878, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+1879: district_obj.has_pmp = 1
__pyx_v_district_obj->has_pmp = 1;
+1880: district_obj.irrdemand.set_pmp_parameters(pmp_coef, district)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj->irrdemand), __pyx_n_s_set_pmp_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pmp_coef, __pyx_v_district}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1880, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pmp_coef, __pyx_v_district}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1880, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_pmp_coef); __Pyx_GIVEREF(__pyx_v_pmp_coef); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_10, __pyx_v_pmp_coef); __Pyx_INCREF(__pyx_v_district); __Pyx_GIVEREF(__pyx_v_district); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_10, __pyx_v_district); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1881: district_obj.irrdemand.make_crop_list()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj->irrdemand), __pyx_n_s_make_crop_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1882: district_obj.irrdemand.set_econ_parameters(econ_data, district)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj->irrdemand), __pyx_n_s_set_econ_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_econ_data, __pyx_v_district}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1882, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_econ_data, __pyx_v_district}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1882, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_econ_data); __Pyx_GIVEREF(__pyx_v_econ_data); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_10, __pyx_v_econ_data); __Pyx_INCREF(__pyx_v_district); __Pyx_GIVEREF(__pyx_v_district); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_10, __pyx_v_district); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1883: district_obj.total_water_base = 0.0
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_total_water_base, __pyx_float_0_0) < 0) __PYX_ERR(0, 1883, __pyx_L1_error)
+1884: land_constraint = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_land_constraint, __pyx_float_0_0);
+1885: for crop in district_obj.irrdemand.crop_list:
if (unlikely(__pyx_v_district_obj->irrdemand->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1885, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_district_obj->irrdemand->crop_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1885, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1886: district_obj.total_water_base += district_obj.irrdemand.baseline_inputs['WATER'][crop]##base case water inputs to validate pmp model - within timestep use self.source_codes to get contracts
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_district_obj->irrdemand->baseline_inputs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1886, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->baseline_inputs, __pyx_n_u_WATER); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_total_water_base, __pyx_t_5) < 0) __PYX_ERR(0, 1886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1887: land_constraint += district_obj.irrdemand.baseline_inputs['LAND'][crop]
if (unlikely(__pyx_v_district_obj->irrdemand->baseline_inputs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1887, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->baseline_inputs, __pyx_n_u_LAND); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_land_constraint, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_land_constraint, __pyx_t_5);
__pyx_t_5 = 0;
+1888: water_constraint_by_source = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_water_constraint_by_source, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+1889: for source in district_obj.irrdemand.water_source_list:
if (unlikely(__pyx_v_district_obj->irrdemand->water_source_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1889, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_district_obj->irrdemand->water_source_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1889, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1889, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_source, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1890: water_constraint_by_source[source] = district_obj.irrdemand.econ_factors[source]*district_obj.total_water_base
if (unlikely(__pyx_v_district_obj->irrdemand->econ_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1890, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->econ_factors, __pyx_v_source); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_v_source, __pyx_t_1) < 0)) __PYX_ERR(0, 1890, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1891:
+1892: x0 = np.zeros(len(district_obj.irrdemand.crop_list))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_v_district_obj->irrdemand->crop_list; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 1892, __pyx_L1_error) } __pyx_t_11 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_x0, __pyx_t_6); __pyx_t_6 = 0;
+1893: district_obj.set_pmp_acreage(water_constraint_by_source, land_constraint, x0)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_pmp_acreage); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_water_constraint_by_source); __Pyx_GIVEREF(__pyx_v_water_constraint_by_source); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_10, __pyx_v_water_constraint_by_source); __Pyx_INCREF(__pyx_v_land_constraint); __Pyx_GIVEREF(__pyx_v_land_constraint); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_10, __pyx_v_land_constraint); __Pyx_INCREF(__pyx_v_x0); __Pyx_GIVEREF(__pyx_v_x0); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_10, __pyx_v_x0); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1894: observed_acreage = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_observed_acreage, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+1895: for crop in district_obj.irrdemand.crop_list:
if (unlikely(__pyx_v_district_obj->irrdemand->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1895, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_district_obj->irrdemand->crop_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1895, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1896: district_crops = district_obj.irrdemand.crop_keys[crop]
if (unlikely(__pyx_v_district_obj->irrdemand->crop_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1896, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->crop_keys, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1896, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_district_crops, __pyx_t_4);
__pyx_t_4 = 0;
+1897: if district_crops in observed_acreage:
__pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_district_crops, __pyx_v_observed_acreage, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1897, __pyx_L1_error) __pyx_t_8 = (__pyx_t_9 != 0); if (__pyx_t_8) { /* … */ goto __pyx_L16; }
+1898: observed_acreage[district_crops] += district_obj.irrdemand.baseline_inputs['LAND'][crop]
__Pyx_INCREF(__pyx_v_district_crops); __pyx_t_4 = __pyx_v_district_crops; __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_observed_acreage, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_district_obj->irrdemand->baseline_inputs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1898, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->baseline_inputs, __pyx_n_u_LAND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_crop); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(PyDict_SetItem(__pyx_v_observed_acreage, __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 1898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1899: else:
+1900: observed_acreage[district_crops] = district_obj.irrdemand.baseline_inputs['LAND'][crop]
/*else*/ {
if (unlikely(__pyx_v_district_obj->irrdemand->baseline_inputs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1900, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->baseline_inputs, __pyx_n_u_LAND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_crop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_observed_acreage, __pyx_v_district_crops, __pyx_t_1) < 0)) __PYX_ERR(0, 1900, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L16:;
+1901: i = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_int_0);
+1902: calculated = np.zeros(len(observed_acreage))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = PyDict_Size(__pyx_v_observed_acreage); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1902, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_12, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_calculated, __pyx_t_6); __pyx_t_6 = 0;
+1903: observed = np.zeros(len(observed_acreage))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = PyDict_Size(__pyx_v_observed_acreage); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1903, __pyx_L1_error) __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_observed, __pyx_t_6); __pyx_t_6 = 0;
+1904: total_land = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_land, __pyx_float_0_0);
+1905: for crop in observed_acreage:
__pyx_t_11 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_observed_acreage, 1, ((PyObject *)NULL), (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_13, &__pyx_t_11, &__pyx_t_1, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_1);
__pyx_t_1 = 0;
+1906: calculated[i] = district_obj.pmp_acreage[crop]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(__pyx_v_calculated, __pyx_v_i, __pyx_t_4) < 0)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1907: observed[i] = observed_acreage[crop]
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_observed_acreage, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_v_observed, __pyx_v_i, __pyx_t_4) < 0)) __PYX_ERR(0, 1907, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1908: total_land += calculated[i]
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_calculated, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_total_land, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_total_land, __pyx_t_1); __pyx_t_1 = 0;
+1909: i += 1
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1910:
1911: #legend_dict[district] = plt.plot(calculated, observed, 'o', color = color_list[xx])
+1912: xx += 1
__pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_xx, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_xx, __pyx_t_6); __pyx_t_6 = 0;
1913: #legend_obj = tuple([legend_dict[e] for e in legend_dict])
1914: #legend_names = tuple([self.district_codes[e] for e in legend_dict])
1915: #plt.xlabel('Calculated Acreage')
1916: #plt.ylabel('Observed Acreage')
1917: #plt.legend(legend_names)
1918: #plt.show()
1919: #plt.close()
1920:
1921:
1922:
+1923: def project_urban(self, datafile, datafile_cvp, datafile_pumping):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_47project_urban(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_47project_urban(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_datafile = 0;
PyObject *__pyx_v_datafile_cvp = 0;
PyObject *__pyx_v_datafile_pumping = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("project_urban (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_datafile,&__pyx_n_s_datafile_cvp,&__pyx_n_s_datafile_pumping,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile_cvp)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban", 1, 3, 3, 1); __PYX_ERR(0, 1923, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile_pumping)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban", 1, 3, 3, 2); __PYX_ERR(0, 1923, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "project_urban") < 0)) __PYX_ERR(0, 1923, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_datafile = values[0];
__pyx_v_datafile_cvp = values[1];
__pyx_v_datafile_pumping = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("project_urban", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1923, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.project_urban", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_46project_urban(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_datafile, __pyx_v_datafile_cvp, __pyx_v_datafile_pumping);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_46project_urban(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_datafile, PyObject *__pyx_v_datafile_cvp, PyObject *__pyx_v_datafile_pumping) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_df_urban = NULL;
PyObject *__pyx_v_simulation_dates = NULL;
PyObject *__pyx_v_urban_dates = NULL;
PyObject *__pyx_v_start_date = NULL;
PyObject *__pyx_v_end_date = NULL;
PyObject *__pyx_v_date_mask = NULL;
PyObject *__pyx_v_df_urban_monthly_cvp = NULL;
PyObject *__pyx_v_df_pumping_prediction_control = NULL;
PyObject *__pyx_v_index_urban = NULL;
PyObject *__pyx_v_urban_historical_T = NULL;
PyObject *__pyx_v_index_urban_d = NULL;
PyObject *__pyx_v_index_urban_m = NULL;
PyObject *__pyx_v_index_urban_y = NULL;
PyObject *__pyx_v_index_urban_dowy = NULL;
PyObject *__pyx_v_urban_startYear = NULL;
PyObject *__pyx_v_urban_start_regression_year = NULL;
PyObject *__pyx_v_urban_start_regression = NULL;
PyObject *__pyx_v_index_urban_water_year = NULL;
PyObject *__pyx_v_numYears_urban = NULL;
PyObject *__pyx_v_urban_list = NULL;
PyObject *__pyx_v_SRI_forecast = NULL;
PyObject *__pyx_v_regression_annual_hro = NULL;
PyObject *__pyx_v_regression_annual_trp = NULL;
PyObject *__pyx_v_regression_percent = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_sim_y = NULL;
PyObject *__pyx_v_sim_m = NULL;
PyObject *__pyx_v_sim_d = NULL;
long __pyx_v_start_counter;
PyObject *__pyx_v_sri_regression = NULL;
long __pyx_v_simt;
PyObject *__pyx_v_urban_leap = NULL;
PyObject *__pyx_v_urban_year_list = NULL;
PyObject *__pyx_v_urban_days_in_month = NULL;
PyObject *__pyx_v_hist_pumping = NULL;
PyObject *__pyx_v_regression_annual = NULL;
Py_ssize_t __pyx_v_xx;
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_wateryear = NULL;
PyObject *__pyx_v_year_index = NULL;
PyObject *__pyx_v_t = NULL;
PyObject *__pyx_v_metropolitan_demand = NULL;
PyObject *__pyx_v_metropolitan_adjust = NULL;
PyObject *__pyx_v_recalc_pumping = NULL;
PyObject *__pyx_v_year_counter = NULL;
Py_ssize_t __pyx_v_pumping_counter;
PyObject *__pyx_v_real_ratio = NULL;
Py_ssize_t __pyx_v_pump_counter;
PyObject *__pyx_v_dowy = NULL;
PyObject *__pyx_v_sri_forecast_dowy = NULL;
PyObject *__pyx_v_pumping_forecast_dowy = NULL;
PyObject *__pyx_v_pumping_forecast_timeseries = NULL;
PyObject *__pyx_v_regression_errors = NULL;
PyObject *__pyx_v_regression_errors_timeseries = NULL;
PyObject *__pyx_v_counter1 = NULL;
PyObject *__pyx_v_error_changes = NULL;
PyObject *__pyx_v_pumping_changes = NULL;
PyObject *__pyx_v_wateryear_day = NULL;
PyObject *__pyx_v_coef = NULL;
PyObject *__pyx_v_fig = NULL;
PyObject *__pyx_v_sri = NULL;
PyObject *__pyx_v_percent = NULL;
PyObject *__pyx_v_ax1 = NULL;
PyObject *__pyx_v_yy = NULL;
PyObject *__pyx_v_wateryear_count = NULL;
double __pyx_v_pumping_forecast_min;
double __pyx_v_pumping_forecast_max;
PyObject *__pyx_v_day_error_changes = NULL;
PyObject *__pyx_v_day_pumping_changes = NULL;
PyObject *__pyx_v_np_list_1_logi = NULL;
PyObject *__pyx_v_day_error_cleaned = NULL;
PyObject *__pyx_v_day_pumping_cleaned = NULL;
PyObject *__pyx_v_y = NULL;
CYTHON_UNUSED PyObject *__pyx_v_r = NULL;
PyObject *__pyx_v_ytd_pumping_int = NULL;
PyObject *__pyx_v_predicted_annual_demand = NULL;
CYTHON_UNUSED PyObject *__pyx_9genexpr29__pyx_v__ = NULL;
CYTHON_UNUSED PyObject *__pyx_9genexpr30__pyx_v__ = NULL;
PyObject *__pyx_9genexpr31__pyx_v__ = NULL;
CYTHON_UNUSED PyObject *__pyx_9genexpr32__pyx_v__ = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("project_urban", 0);
__Pyx_TraceCall("project_urban", __pyx_f[0], 1923, 0, __PYX_ERR(0, 1923, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("calfews_src.model_cy.Model.project_urban", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_df_urban);
__Pyx_XDECREF(__pyx_v_simulation_dates);
__Pyx_XDECREF(__pyx_v_urban_dates);
__Pyx_XDECREF(__pyx_v_start_date);
__Pyx_XDECREF(__pyx_v_end_date);
__Pyx_XDECREF(__pyx_v_date_mask);
__Pyx_XDECREF(__pyx_v_df_urban_monthly_cvp);
__Pyx_XDECREF(__pyx_v_df_pumping_prediction_control);
__Pyx_XDECREF(__pyx_v_index_urban);
__Pyx_XDECREF(__pyx_v_urban_historical_T);
__Pyx_XDECREF(__pyx_v_index_urban_d);
__Pyx_XDECREF(__pyx_v_index_urban_m);
__Pyx_XDECREF(__pyx_v_index_urban_y);
__Pyx_XDECREF(__pyx_v_index_urban_dowy);
__Pyx_XDECREF(__pyx_v_urban_startYear);
__Pyx_XDECREF(__pyx_v_urban_start_regression_year);
__Pyx_XDECREF(__pyx_v_urban_start_regression);
__Pyx_XDECREF(__pyx_v_index_urban_water_year);
__Pyx_XDECREF(__pyx_v_numYears_urban);
__Pyx_XDECREF(__pyx_v_urban_list);
__Pyx_XDECREF(__pyx_v_SRI_forecast);
__Pyx_XDECREF(__pyx_v_regression_annual_hro);
__Pyx_XDECREF(__pyx_v_regression_annual_trp);
__Pyx_XDECREF(__pyx_v_regression_percent);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_sim_y);
__Pyx_XDECREF(__pyx_v_sim_m);
__Pyx_XDECREF(__pyx_v_sim_d);
__Pyx_XDECREF(__pyx_v_sri_regression);
__Pyx_XDECREF(__pyx_v_urban_leap);
__Pyx_XDECREF(__pyx_v_urban_year_list);
__Pyx_XDECREF(__pyx_v_urban_days_in_month);
__Pyx_XDECREF(__pyx_v_hist_pumping);
__Pyx_XDECREF(__pyx_v_regression_annual);
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_wateryear);
__Pyx_XDECREF(__pyx_v_year_index);
__Pyx_XDECREF(__pyx_v_t);
__Pyx_XDECREF(__pyx_v_metropolitan_demand);
__Pyx_XDECREF(__pyx_v_metropolitan_adjust);
__Pyx_XDECREF(__pyx_v_recalc_pumping);
__Pyx_XDECREF(__pyx_v_year_counter);
__Pyx_XDECREF(__pyx_v_real_ratio);
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_sri_forecast_dowy);
__Pyx_XDECREF(__pyx_v_pumping_forecast_dowy);
__Pyx_XDECREF(__pyx_v_pumping_forecast_timeseries);
__Pyx_XDECREF(__pyx_v_regression_errors);
__Pyx_XDECREF(__pyx_v_regression_errors_timeseries);
__Pyx_XDECREF(__pyx_v_counter1);
__Pyx_XDECREF(__pyx_v_error_changes);
__Pyx_XDECREF(__pyx_v_pumping_changes);
__Pyx_XDECREF(__pyx_v_wateryear_day);
__Pyx_XDECREF(__pyx_v_coef);
__Pyx_XDECREF(__pyx_v_fig);
__Pyx_XDECREF(__pyx_v_sri);
__Pyx_XDECREF(__pyx_v_percent);
__Pyx_XDECREF(__pyx_v_ax1);
__Pyx_XDECREF(__pyx_v_yy);
__Pyx_XDECREF(__pyx_v_wateryear_count);
__Pyx_XDECREF(__pyx_v_day_error_changes);
__Pyx_XDECREF(__pyx_v_day_pumping_changes);
__Pyx_XDECREF(__pyx_v_np_list_1_logi);
__Pyx_XDECREF(__pyx_v_day_error_cleaned);
__Pyx_XDECREF(__pyx_v_day_pumping_cleaned);
__Pyx_XDECREF(__pyx_v_y);
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XDECREF(__pyx_v_ytd_pumping_int);
__Pyx_XDECREF(__pyx_v_predicted_annual_demand);
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v__);
__Pyx_XDECREF(__pyx_9genexpr30__pyx_v__);
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v__);
__Pyx_XDECREF(__pyx_9genexpr32__pyx_v__);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1924: #########################################################################################
1925: ###initializes variables needed for district objects that are pumping plants on branches
1926: ###of the california aqueduct (southern california, central coast, and the south bay)
1927: #########################################################################################
1928: cdef District district_obj
1929: cdef Private private_obj
1930:
1931: ##This function finds linear regression coefficients between urban CA AQ branch pumpning and delta pumping
1932: ##to predict water use in southbay, centralcoast, and socal district objects
1933: ##NOTE!!! More detailed MWD/Southern Cal demand data would improve the model
+1934: df_urban = pd.read_csv(datafile, index_col=0, parse_dates=True)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_datafile); __Pyx_GIVEREF(__pyx_v_datafile); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_datafile); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1934, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1934, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_df_urban = __pyx_t_4; __pyx_t_4 = 0;
+1935: if self.model_mode == 'validation':
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1935, __pyx_L1_error) __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ }
+1936: simulation_dates = pd.to_datetime(self.df[0].index)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_to_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->df == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1936, __pyx_L1_error) } __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->df, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_simulation_dates = __pyx_t_4; __pyx_t_4 = 0;
+1937: urban_dates = pd.to_datetime(df_urban.index)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_to_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df_urban, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_urban_dates = __pyx_t_4; __pyx_t_4 = 0;
+1938: start_date = simulation_dates[0]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_simulation_dates, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_start_date = __pyx_t_4; __pyx_t_4 = 0;
+1939: end_date = simulation_dates[-1]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_simulation_dates, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_end_date = __pyx_t_4; __pyx_t_4 = 0;
+1940: date_mask = (urban_dates >= start_date) & (urban_dates <= end_date)
__pyx_t_4 = PyObject_RichCompare(__pyx_v_urban_dates, __pyx_v_start_date, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1940, __pyx_L1_error) __pyx_t_2 = PyObject_RichCompare(__pyx_v_urban_dates, __pyx_v_end_date, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1940, __pyx_L1_error) __pyx_t_1 = PyNumber_And(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_date_mask = __pyx_t_1; __pyx_t_1 = 0;
+1941: df_urban = df_urban[date_mask]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df_urban, __pyx_v_date_mask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df_urban, __pyx_t_1); __pyx_t_1 = 0;
1942:
+1943: df_urban_monthly_cvp = pd.read_csv(datafile_cvp, index_col=0, parse_dates=True)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_datafile_cvp); __Pyx_GIVEREF(__pyx_v_datafile_cvp); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_datafile_cvp); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1943, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1943, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_df_urban_monthly_cvp = __pyx_t_3; __pyx_t_3 = 0;
+1944: df_pumping_prediction_control = pd.read_csv(datafile_pumping, index_col=0, parse_dates=True)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_datafile_pumping); __Pyx_GIVEREF(__pyx_v_datafile_pumping); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_datafile_pumping); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1944, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1944, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_df_pumping_prediction_control = __pyx_t_2; __pyx_t_2 = 0;
+1945: index_urban = df_urban.index
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_df_urban, __pyx_n_s_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_index_urban = __pyx_t_2; __pyx_t_2 = 0;
+1946: urban_historical_T = len(df_urban)
__pyx_t_7 = PyObject_Length(__pyx_v_df_urban); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1946, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_urban_historical_T = __pyx_t_2; __pyx_t_2 = 0;
+1947: index_urban_d = index_urban.dayofyear
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_index_urban_d = __pyx_t_2; __pyx_t_2 = 0;
+1948: index_urban_m = index_urban.month
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_index_urban_m = __pyx_t_2; __pyx_t_2 = 0;
+1949: index_urban_y = index_urban.year
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_index_urban_y = __pyx_t_2; __pyx_t_2 = 0;
+1950: index_urban_dowy = water_day(index_urban_d, index_urban_y)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_water_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_index_urban_d, __pyx_v_index_urban_y}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_index_urban_d, __pyx_v_index_urban_y}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_index_urban_d); __Pyx_GIVEREF(__pyx_v_index_urban_d); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_v_index_urban_d); __Pyx_INCREF(__pyx_v_index_urban_y); __Pyx_GIVEREF(__pyx_v_index_urban_y); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_v_index_urban_y); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_index_urban_dowy = __pyx_t_2; __pyx_t_2 = 0;
+1951: urban_startYear = index_urban_y[0]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_index_urban_y, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_urban_startYear = __pyx_t_2; __pyx_t_2 = 0;
+1952: urban_start_regression_year = 2003
__Pyx_INCREF(__pyx_int_2003);
__pyx_v_urban_start_regression_year = __pyx_int_2003;
+1953: urban_start_regression = int(urban_start_regression_year - urban_startYear - 1)
__pyx_t_2 = PyNumber_Subtract(__pyx_v_urban_start_regression_year, __pyx_v_urban_startYear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_urban_start_regression = __pyx_t_2; __pyx_t_2 = 0;
+1954: index_urban_water_year = water_year(index_urban_m, index_urban_y, urban_startYear)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_water_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_index_urban_m, __pyx_v_index_urban_y, __pyx_v_urban_startYear}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_index_urban_m, __pyx_v_index_urban_y, __pyx_v_urban_startYear}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_index_urban_m); __Pyx_GIVEREF(__pyx_v_index_urban_m); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_index_urban_m); __Pyx_INCREF(__pyx_v_index_urban_y); __Pyx_GIVEREF(__pyx_v_index_urban_y); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_index_urban_y); __Pyx_INCREF(__pyx_v_urban_startYear); __Pyx_GIVEREF(__pyx_v_urban_startYear); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_urban_startYear); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_index_urban_water_year = __pyx_t_2; __pyx_t_2 = 0;
+1955: numYears_urban = index_urban_y[urban_historical_T - 1] - index_urban_y[0]
__pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_urban_historical_T, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_y, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_index_urban_y, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_numYears_urban = __pyx_t_3; __pyx_t_3 = 0;
+1956: urban_list = [self.socal, self.centralcoast, self.southbay]
__pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self->socal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->socal)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->socal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->centralcoast)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->centralcoast)); PyList_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->centralcoast)); __Pyx_INCREF(((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->southbay)); PyList_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->southbay)); __pyx_v_urban_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1957: self.observed_hro = (df_urban['HRO_pump'].values *cfs_tafd).tolist()
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_HRO_pump); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tolist); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 1957, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->observed_hro); __Pyx_DECREF(__pyx_v_self->observed_hro); __pyx_v_self->observed_hro = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1958: self.observed_trp = (df_urban['TRP_pump'].values *cfs_tafd).tolist()
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_TRP_pump); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tolist); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 1958, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->observed_trp); __Pyx_DECREF(__pyx_v_self->observed_trp); __pyx_v_self->observed_trp = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1959: self.observed_hro_pred = df_pumping_prediction_control['DEL_SWP_allocation'].tolist()
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_pumping_prediction_control, __pyx_n_u_DEL_SWP_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tolist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 1959, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->observed_hro_pred); __Pyx_DECREF(__pyx_v_self->observed_hro_pred); __pyx_v_self->observed_hro_pred = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1960: SRI_forecast = df_urban['DEL_SCINDEX'].values
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_DEL_SCINDEX); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_SRI_forecast = __pyx_t_1; __pyx_t_1 = 0;
+1961: regression_annual_hro = [0.0 for _ in range(numYears_urban)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1961, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1961, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1961, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1961, __pyx_L6_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1961, __pyx_L6_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1961, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1961, __pyx_L6_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1961, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_9(__pyx_t_2);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1961, __pyx_L6_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_9genexpr29__pyx_v__, __pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1961, __pyx_L6_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v__); __pyx_9genexpr29__pyx_v__ = 0;
goto __pyx_L9_exit_scope;
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v__); __pyx_9genexpr29__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L9_exit_scope:;
} /* exit inner scope */
__pyx_v_regression_annual_hro = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1962: regression_annual_trp = [0.0 for _ in range(numYears_urban)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1962, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1962, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1962, __pyx_L12_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1962, __pyx_L12_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1962, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1962, __pyx_L12_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1962, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
} else {
__pyx_t_2 = __pyx_t_9(__pyx_t_3);
if (unlikely(!__pyx_t_2)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1962, __pyx_L12_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_XDECREF_SET(__pyx_9genexpr30__pyx_v__, __pyx_t_2);
__pyx_t_2 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1962, __pyx_L12_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_9genexpr30__pyx_v__); __pyx_9genexpr30__pyx_v__ = 0;
goto __pyx_L15_exit_scope;
__pyx_L12_error:;
__Pyx_XDECREF(__pyx_9genexpr30__pyx_v__); __pyx_9genexpr30__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L15_exit_scope:;
} /* exit inner scope */
__pyx_v_regression_annual_trp = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1963: regression_percent = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_regression_percent = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1964: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1964, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1964, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1965: regression_percent[district_obj] = np.zeros((365,numYears_urban))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_365); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj), __pyx_t_3) < 0)) __PYX_ERR(0, 1965, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1966: district_obj.delivery_percent_coefficient = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_district_obj->delivery_percent_coefficient); __Pyx_DECREF(__pyx_v_district_obj->delivery_percent_coefficient); __pyx_v_district_obj->delivery_percent_coefficient = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1967: district_obj.delivery_percent_coefficient[0] = np.zeros((365,4))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_tuple__24) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_tuple__24); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1967, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0, __pyx_t_3) < 0)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__24 = PyTuple_Pack(2, __pyx_int_365, __pyx_int_4); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24);
+1968: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1968, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1968, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 1968, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1969: private_obj.delivery_percent_coefficient = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->delivery_percent_coefficient); __Pyx_DECREF(__pyx_v_private_obj->delivery_percent_coefficient); __pyx_v_private_obj->delivery_percent_coefficient = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1970: regression_percent[private_obj] = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyDict_SetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj), __pyx_t_3) < 0)) __PYX_ERR(0, 1970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1971: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1971, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1971, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_2);
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1972: private_obj.delivery_percent_coefficient[district_key] = np.zeros((365,4))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_tuple__24) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_tuple__24); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1972, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key, __pyx_t_2) < 0)) __PYX_ERR(0, 1972, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1973: regression_percent[private_obj][district_key] = np.zeros((365,numYears_urban))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_365); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_numYears_urban); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_district_key, __pyx_t_2) < 0)) __PYX_ERR(0, 1973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1974:
+1975: sim_y = self.year
__pyx_t_1 = __pyx_v_self->year;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_sim_y = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1976: sim_m = self.month
__pyx_t_1 = __pyx_v_self->month;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_sim_m = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1977: sim_d = self.day_month
__pyx_t_1 = __pyx_v_self->day_month;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_sim_d = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+1978: start_counter = 0
__pyx_v_start_counter = 0;
+1979: sri_regression = np.zeros(numYears_urban - urban_start_regression)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_sri_regression = __pyx_t_1; __pyx_t_1 = 0;
+1980: for simt in range(0, self.T):
__pyx_t_8 = __pyx_v_self->T;
__pyx_t_13 = __pyx_t_8;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_simt = __pyx_t_14;
+1981: if sim_y[simt] == urban_start_regression_year:
if (unlikely(__pyx_v_sim_y == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1981, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_sim_y, __pyx_v_simt, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1981, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_urban_start_regression_year, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1981, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1981, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_6) {
/* … */
}
+1982: start_counter = 1
__pyx_v_start_counter = 1;
+1983: if start_counter == 1 and sim_m[simt] == 9 and sim_d[simt] == 1:
__pyx_t_5 = ((__pyx_v_start_counter == 1) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_6 = __pyx_t_5;
goto __pyx_L26_bool_binop_done;
}
if (unlikely(__pyx_v_sim_m == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1983, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_sim_m, __pyx_v_simt, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_6 = __pyx_t_5;
goto __pyx_L26_bool_binop_done;
}
if (unlikely(__pyx_v_sim_d == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1983, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_sim_d, __pyx_v_simt, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1983, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_6 = __pyx_t_5;
__pyx_L26_bool_binop_done:;
if (__pyx_t_6) {
/* … */
}
}
+1984: sri_regression[sim_y[simt] - urban_start_regression_year] = self.forecastSRI[simt]
if (unlikely(__pyx_v_self->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1984, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->forecastSRI, __pyx_v_simt, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_sim_y == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1984, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_sim_y, __pyx_v_simt, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_v_urban_start_regression_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(PyObject_SetItem(__pyx_v_sri_regression, __pyx_t_3, __pyx_t_2) < 0)) __PYX_ERR(0, 1984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1985: urban_leap = leap(np.arange(min(index_urban_y), max(index_urban_y) + 2))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_leap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_arange); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyInt_AddObjC(__pyx_t_12, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_4, __pyx_t_15}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_4, __pyx_t_15}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_8, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_8, __pyx_t_15); __pyx_t_4 = 0; __pyx_t_15 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_urban_leap = __pyx_t_2; __pyx_t_2 = 0;
+1986: urban_year_list = np.arange(min(index_urban_y), max(index_urban_y) + 2)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_arange); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_t_10, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_16}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_16}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_16); __pyx_t_3 = 0; __pyx_t_16 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_urban_year_list = __pyx_t_2; __pyx_t_2 = 0;
+1987: urban_days_in_month = days_in_month(urban_year_list, urban_leap)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_15 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_15, __pyx_v_urban_year_list, __pyx_v_urban_leap}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1987, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_15, __pyx_v_urban_year_list, __pyx_v_urban_leap}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1987, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15); __pyx_t_15 = NULL; } __Pyx_INCREF(__pyx_v_urban_year_list); __Pyx_GIVEREF(__pyx_v_urban_year_list); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_8, __pyx_v_urban_year_list); __Pyx_INCREF(__pyx_v_urban_leap); __Pyx_GIVEREF(__pyx_v_urban_leap); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_8, __pyx_v_urban_leap); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_urban_days_in_month = __pyx_t_2; __pyx_t_2 = 0;
1988:
+1989: hist_pumping = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_hist_pumping = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1990: regression_annual = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_regression_annual = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1991: for district_obj in urban_list:
__pyx_t_2 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1991, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 1991, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1992: hist_pumping[district_obj] = [float(_) for _ in df_urban[district_obj.key+ '_pump'].values]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_16 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_district_obj->key, __pyx_n_u_pump); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_values); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) {
__pyx_t_15 = __pyx_t_16; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_9 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1992, __pyx_L33_error)
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_15))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1992, __pyx_L33_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1992, __pyx_L33_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
}
} else {
__pyx_t_16 = __pyx_t_9(__pyx_t_15);
if (unlikely(!__pyx_t_16)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1992, __pyx_L33_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_16);
}
__Pyx_XDECREF_SET(__pyx_9genexpr31__pyx_v__, __pyx_t_16);
__pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyNumber_Float(__pyx_9genexpr31__pyx_v__); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_16);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_16))) __PYX_ERR(0, 1992, __pyx_L33_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v__); __pyx_9genexpr31__pyx_v__ = 0;
goto __pyx_L36_exit_scope;
__pyx_L33_error:;
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v__); __pyx_9genexpr31__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L36_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_v_hist_pumping, ((PyObject *)__pyx_v_district_obj), __pyx_t_1) < 0)) __PYX_ERR(0, 1992, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1993: regression_annual[district_obj] = [0.0 for _ in range(numYears_urban)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1993, __pyx_L39_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1993, __pyx_L39_error)
__Pyx_GOTREF(__pyx_t_15);
if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) {
__pyx_t_16 = __pyx_t_15; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1993, __pyx_L39_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_9 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1993, __pyx_L39_error)
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_16))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_15); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1993, __pyx_L39_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1993, __pyx_L39_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_15); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1993, __pyx_L39_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1993, __pyx_L39_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
}
} else {
__pyx_t_15 = __pyx_t_9(__pyx_t_16);
if (unlikely(!__pyx_t_15)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 1993, __pyx_L39_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_15);
}
__Pyx_XDECREF_SET(__pyx_9genexpr32__pyx_v__, __pyx_t_15);
__pyx_t_15 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1993, __pyx_L39_error)
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_9genexpr32__pyx_v__); __pyx_9genexpr32__pyx_v__ = 0;
goto __pyx_L42_exit_scope;
__pyx_L39_error:;
__Pyx_XDECREF(__pyx_9genexpr32__pyx_v__); __pyx_9genexpr32__pyx_v__ = 0;
goto __pyx_L1_error;
__pyx_L42_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_v_regression_annual, ((PyObject *)__pyx_v_district_obj), __pyx_t_1) < 0)) __PYX_ERR(0, 1993, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1994:
+1995: for xx in range(0, len(hist_pumping[self.southbay])):
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, ((PyObject *)__pyx_v_self->southbay)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __pyx_t_7; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_11; __pyx_t_17+=1) { __pyx_v_xx = __pyx_t_17;
+1996: m = index_urban_m[xx]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_index_urban_m, __pyx_v_xx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_2); __pyx_t_2 = 0;
+1997: wateryear = index_urban_water_year[xx]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_index_urban_water_year, __pyx_v_xx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_2); __pyx_t_2 = 0;
+1998: year_index = index_urban_y[xx]-urban_startYear
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_index_urban_y, __pyx_v_xx, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_urban_startYear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_year_index, __pyx_t_1); __pyx_t_1 = 0;
+1999: hist_pumping[self.southbay][xx] += df_urban_monthly_cvp['PCH_pump'][m-1 + wateryear*12]*1000.0/urban_days_in_month[year_index][m-1]
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, ((PyObject *)__pyx_v_self->southbay)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_18 = __pyx_v_xx; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_18, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban_monthly_cvp, __pyx_n_u_PCH_pump); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyNumber_Multiply(__pyx_v_wateryear, __pyx_int_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyNumber_Add(__pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_t_3, __pyx_float_1000_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_urban_days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_10, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_18, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1999, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
2000:
+2001: for t in range(0,urban_historical_T):
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_urban_historical_T); __Pyx_GIVEREF(__pyx_v_urban_historical_T); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_urban_historical_T); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) { __pyx_t_1 = __pyx_t_15; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; __pyx_t_9 = NULL; } else { __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2001, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2001, __pyx_L1_error) #else __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2001, __pyx_L1_error) #else __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); #endif } } else { __pyx_t_15 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_15)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2001, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_15); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_15); __pyx_t_15 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2002: wateryear = index_urban_water_year[t]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_15); __pyx_t_15 = 0;
2003:
2004: ##Find annual pumping at each branch (and @ delta)
+2005: regression_annual_hro[wateryear] += self.observed_hro[t]
__Pyx_INCREF(__pyx_v_wateryear); __pyx_t_15 = __pyx_v_wateryear; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_regression_annual_hro, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_self->observed_hro == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2005, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_v_regression_annual_hro, __pyx_t_15, __pyx_t_10) < 0)) __PYX_ERR(0, 2005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2006: regression_annual_trp[wateryear] += self.observed_trp[t]
__Pyx_INCREF(__pyx_v_wateryear); __pyx_t_15 = __pyx_v_wateryear; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_regression_annual_trp, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(__pyx_v_self->observed_trp == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2006, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_trp, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_v_regression_annual_trp, __pyx_t_15, __pyx_t_16) < 0)) __PYX_ERR(0, 2006, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2007: for district_obj in urban_list:
__pyx_t_15 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2007, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2007, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16)); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2008: regression_annual[district_obj][wateryear] += hist_pumping[district_obj][t]/1000.0
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_v_wateryear); __pyx_t_2 = __pyx_v_wateryear; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_4, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 2008, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2009:
+2010: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2010, __pyx_L1_error) #else __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); #endif if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2010, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_15)); __pyx_t_15 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2011: district_obj.pumping = {}
__pyx_t_15 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); __Pyx_GOTREF(__pyx_v_district_obj->pumping); __Pyx_DECREF(__pyx_v_district_obj->pumping); __pyx_v_district_obj->pumping = ((PyObject*)__pyx_t_15); __pyx_t_15 = 0;
+2012: district_obj.pumping[0] = hist_pumping[district_obj]
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_district_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2012, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->pumping, __pyx_int_0, __pyx_t_15) < 0)) __PYX_ERR(0, 2012, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2013: district_obj.annual_pumping = {}
__pyx_t_15 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); __Pyx_GOTREF(__pyx_v_district_obj->annual_pumping); __Pyx_DECREF(__pyx_v_district_obj->annual_pumping); __pyx_v_district_obj->annual_pumping = ((PyObject*)__pyx_t_15); __pyx_t_15 = 0;
+2014: district_obj.annual_pumping[0] = regression_annual[district_obj]
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2014, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0, __pyx_t_15) < 0)) __PYX_ERR(0, 2014, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
2015: # for xx in range(0, len(hist_pumping[district_obj])):
2016: # district_obj.pumping.append(hist_pumping[district_obj][xx] * 1.0)
2017: # for xx in range(0, len(regression_annual[district_obj])):
2018: # district_obj.annual_pumping.append(regression_annual[district_obj][xx] * 1.0)
2019:
+2020: metropolitan_demand = [584.0, 352.0, 681.0, 1252.0, 1075.5, 1408.8, 1592.0, 1865.7, 1431.1, 1501.6, 1646.8, 1077.5, 1020.2, 1123.1, 1335.7, 1065.6, 989.1, 476.8, 704.8, 1106.4]
__pyx_t_1 = PyList_New(20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_584_0); __Pyx_GIVEREF(__pyx_float_584_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_584_0); __Pyx_INCREF(__pyx_float_352_0); __Pyx_GIVEREF(__pyx_float_352_0); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_352_0); __Pyx_INCREF(__pyx_float_681_0); __Pyx_GIVEREF(__pyx_float_681_0); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_681_0); __Pyx_INCREF(__pyx_float_1252_0); __Pyx_GIVEREF(__pyx_float_1252_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_1252_0); __Pyx_INCREF(__pyx_float_1075_5); __Pyx_GIVEREF(__pyx_float_1075_5); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_1075_5); __Pyx_INCREF(__pyx_float_1408_8); __Pyx_GIVEREF(__pyx_float_1408_8); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_1408_8); __Pyx_INCREF(__pyx_float_1592_0); __Pyx_GIVEREF(__pyx_float_1592_0); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_float_1592_0); __Pyx_INCREF(__pyx_float_1865_7); __Pyx_GIVEREF(__pyx_float_1865_7); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_1865_7); __Pyx_INCREF(__pyx_float_1431_1); __Pyx_GIVEREF(__pyx_float_1431_1); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_float_1431_1); __Pyx_INCREF(__pyx_float_1501_6); __Pyx_GIVEREF(__pyx_float_1501_6); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_float_1501_6); __Pyx_INCREF(__pyx_float_1646_8); __Pyx_GIVEREF(__pyx_float_1646_8); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_float_1646_8); __Pyx_INCREF(__pyx_float_1077_5); __Pyx_GIVEREF(__pyx_float_1077_5); PyList_SET_ITEM(__pyx_t_1, 11, __pyx_float_1077_5); __Pyx_INCREF(__pyx_float_1020_2); __Pyx_GIVEREF(__pyx_float_1020_2); PyList_SET_ITEM(__pyx_t_1, 12, __pyx_float_1020_2); __Pyx_INCREF(__pyx_float_1123_1); __Pyx_GIVEREF(__pyx_float_1123_1); PyList_SET_ITEM(__pyx_t_1, 13, __pyx_float_1123_1); __Pyx_INCREF(__pyx_float_1335_7); __Pyx_GIVEREF(__pyx_float_1335_7); PyList_SET_ITEM(__pyx_t_1, 14, __pyx_float_1335_7); __Pyx_INCREF(__pyx_float_1065_6); __Pyx_GIVEREF(__pyx_float_1065_6); PyList_SET_ITEM(__pyx_t_1, 15, __pyx_float_1065_6); __Pyx_INCREF(__pyx_float_989_1); __Pyx_GIVEREF(__pyx_float_989_1); PyList_SET_ITEM(__pyx_t_1, 16, __pyx_float_989_1); __Pyx_INCREF(__pyx_float_476_8); __Pyx_GIVEREF(__pyx_float_476_8); PyList_SET_ITEM(__pyx_t_1, 17, __pyx_float_476_8); __Pyx_INCREF(__pyx_float_704_8); __Pyx_GIVEREF(__pyx_float_704_8); PyList_SET_ITEM(__pyx_t_1, 18, __pyx_float_704_8); __Pyx_INCREF(__pyx_float_1106_4); __Pyx_GIVEREF(__pyx_float_1106_4); PyList_SET_ITEM(__pyx_t_1, 19, __pyx_float_1106_4); __pyx_v_metropolitan_demand = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2021: if self.model_mode == 'validation':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2021, __pyx_L1_error) __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L51; }
+2022: metropolitan_adjust = self.starting_year - 1996
__pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_self->starting_year - 0x7CC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_metropolitan_adjust = __pyx_t_1; __pyx_t_1 = 0;
2023: else:
+2024: metropolitan_adjust = 0
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__pyx_v_metropolitan_adjust = __pyx_int_0;
}
__pyx_L51:;
2025:
+2026: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2026, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2026, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2026, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_15));
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2027: private_obj.pumping = {}
__pyx_t_15 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); __Pyx_GOTREF(__pyx_v_private_obj->pumping); __Pyx_DECREF(__pyx_v_private_obj->pumping); __pyx_v_private_obj->pumping = ((PyObject*)__pyx_t_15); __pyx_t_15 = 0;
+2028: private_obj.annual_pumping = {}
__pyx_t_15 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_15); __Pyx_GOTREF(__pyx_v_private_obj->annual_pumping); __Pyx_DECREF(__pyx_v_private_obj->annual_pumping); __pyx_v_private_obj->annual_pumping = ((PyObject*)__pyx_t_15); __pyx_t_15 = 0;
+2029: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2029, __pyx_L1_error)
}
__pyx_t_15 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2029, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2029, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2030: if private_obj.key == "MET":
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_private_obj->key, __pyx_n_u_MET, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2030, __pyx_L1_error) __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L56; }
+2031: private_obj.pumping[district_key] = np.zeros(urban_historical_T)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_urban_historical_T) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_urban_historical_T); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2031, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key, __pyx_t_16) < 0)) __PYX_ERR(0, 2031, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2032: private_obj.annual_pumping[district_key] = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2032, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key, __pyx_t_16) < 0)) __PYX_ERR(0, 2032, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2033: recalc_pumping = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_recalc_pumping, __pyx_t_16); __pyx_t_16 = 0;
+2034: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2034, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2034, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16));
__pyx_t_16 = 0;
+2035: for year_counter in range(0, len(private_obj.annual_pumping[district_key])):
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2035, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = PyObject_Length(__pyx_t_16); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
__Pyx_GIVEREF(__pyx_t_16);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_16);
__pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) {
__pyx_t_4 = __pyx_t_16; __Pyx_INCREF(__pyx_t_4); __pyx_t_17 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2035, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_16); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2035, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_16); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2035, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
}
} else {
__pyx_t_16 = __pyx_t_9(__pyx_t_4);
if (unlikely(!__pyx_t_16)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 2035, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_16);
}
__Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2036: if district_key == "SOC":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2036, __pyx_L1_error) if (__pyx_t_6) { /* … */ goto __pyx_L59; }
+2037: private_obj.annual_pumping[district_key][year_counter] = metropolitan_demand[year_counter + metropolitan_adjust]
__pyx_t_16 = PyNumber_Add(__pyx_v_year_counter, __pyx_v_metropolitan_adjust); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_metropolitan_demand, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2037, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_v_year_counter, __pyx_t_2) < 0)) __PYX_ERR(0, 2037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2038: else:
+2039: private_obj.annual_pumping[district_key][year_counter] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2039, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_year_counter, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2039, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L59:;
+2040: if district_key == "SOC":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2040, __pyx_L1_error) if (__pyx_t_6) { /* … */ goto __pyx_L60; }
+2041: for pumping_counter in range(0, len(private_obj.pumping[district_key])):
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2041, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_17 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2041, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_pumping_counter = __pyx_t_19;
+2042: wateryear = index_urban_water_year[pumping_counter]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_index_urban_water_year, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_4); __pyx_t_4 = 0;
+2043: real_ratio = private_obj.annual_pumping[district_key][wateryear]/(district_obj.annual_pumping[0][wateryear]*private_obj.pump_out_fraction[district_key])
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2043, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2043, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2043, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyNumber_Multiply(__pyx_t_16, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_real_ratio, __pyx_t_4);
__pyx_t_4 = 0;
+2044: private_obj.pumping[district_key][pumping_counter] = district_obj.pumping[0][pumping_counter]*private_obj.pump_out_fraction[district_key]*real_ratio
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2044, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2044, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_v_real_ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2044, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_pumping_counter, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2044, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2045: recalc_pumping[wateryear] += private_obj.pumping[district_key][pumping_counter]
__Pyx_INCREF(__pyx_v_wateryear); __pyx_t_4 = __pyx_v_wateryear; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_recalc_pumping, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2045, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(PyObject_SetItem(__pyx_v_recalc_pumping, __pyx_t_4, __pyx_t_3) < 0)) __PYX_ERR(0, 2045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
2046: else:
+2047: for pumping_counter in range(0, len(private_obj.pumping[district_key])):
/*else*/ {
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2047, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_17 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_pumping_counter = __pyx_t_19;
+2048: private_obj.pumping[district_key][pumping_counter] = district_obj.pumping[0][pumping_counter]*private_obj.pump_out_fraction[district_key]
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2048, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2048, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2048, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__Pyx_SetItemInt(__pyx_t_4, __pyx_v_pumping_counter, __pyx_t_16, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
}
__pyx_L60:;
2049: else:
+2050: private_obj.pumping[district_key] = np.zeros(urban_historical_T)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_urban_historical_T) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_urban_historical_T);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2050, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key, __pyx_t_16) < 0)) __PYX_ERR(0, 2050, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2051: private_obj.annual_pumping[district_key] = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2051, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key, __pyx_t_16) < 0)) __PYX_ERR(0, 2051, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2052: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2052, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2052, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16));
__pyx_t_16 = 0;
+2053: for pump_counter in range(0,len(private_obj.pumping[district_key])):
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2053, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = PyObject_Length(__pyx_t_16); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2053, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_pump_counter = __pyx_t_19;
+2054: private_obj.pumping[district_key][pump_counter] += district_obj.pumping[0][pump_counter]*private_obj.pump_out_fraction[district_key]
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2054, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_20 = __pyx_v_pump_counter;
__pyx_t_4 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2054, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2054, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_20, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2054, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
+2055: for year_counter in range(0, len(private_obj.annual_pumping[district_key])):
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2055, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = PyObject_Length(__pyx_t_16); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
__Pyx_GIVEREF(__pyx_t_16);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_16);
__pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) {
__pyx_t_3 = __pyx_t_16; __Pyx_INCREF(__pyx_t_3); __pyx_t_17 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2055, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_16); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2055, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_16); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2055, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
}
} else {
__pyx_t_16 = __pyx_t_9(__pyx_t_3);
if (unlikely(!__pyx_t_16)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 2055, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_16);
}
__Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L56:;
+2056: private_obj.annual_pumping[district_key][year_counter] += district_obj.annual_pumping[0][year_counter]*private_obj.pump_out_fraction[district_key]
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2056, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_INCREF(__pyx_v_year_counter);
__pyx_t_10 = __pyx_v_year_counter;
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2056, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_counter); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_private_obj->pump_out_fraction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2056, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pump_out_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_21 = PyNumber_Multiply(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_10, __pyx_t_2) < 0)) __PYX_ERR(0, 2056, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2057:
+2058: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2058, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2058, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2058, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_15));
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2059: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2059, __pyx_L1_error)
}
__pyx_t_15 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2059, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2060: recalc_pumping = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_16, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_recalc_pumping, __pyx_t_3); __pyx_t_3 = 0;
+2061: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2061, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2061, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
+2062: for pump_counter in range(0, len(private_obj.pumping[district_key])):
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2062, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2062, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2062, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_pump_counter = __pyx_t_19;
+2063: wateryear = index_urban_water_year[pump_counter]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_index_urban_water_year, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3); __pyx_t_3 = 0;
+2064: district_obj.pumping[0][pump_counter] -= private_obj.pumping[district_key][pump_counter]
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2064, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = __pyx_v_pump_counter;
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2064, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_16, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_InPlaceSubtract(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_20, __pyx_t_16, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2064, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2065: if district_obj.pumping[0][pump_counter] < 0.0:
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2065, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2065, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2065, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
+2066: private_obj.pumping[district_key][pump_counter] += district_obj.pumping[0][pump_counter]
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2066, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = __pyx_v_pump_counter;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2066, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_20, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2066, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2067: district_obj.pumping[0][pump_counter] = 0.0
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2067, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2067, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_pump_counter, __pyx_float_0_0, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2067, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2068: recalc_pumping[wateryear] += private_obj.pumping[district_key][pump_counter]
__Pyx_INCREF(__pyx_v_wateryear); __pyx_t_3 = __pyx_v_wateryear; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_recalc_pumping, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2068, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(PyObject_SetItem(__pyx_v_recalc_pumping, __pyx_t_3, __pyx_t_10) < 0)) __PYX_ERR(0, 2068, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; }
+2069: for year_counter in range(0, len(private_obj.annual_pumping[district_key])):
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2069, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_0);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_10 = __pyx_t_3; __Pyx_INCREF(__pyx_t_10); __pyx_t_17 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_9 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2069, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_10))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2069, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2069, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_9(__pyx_t_10);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 2069, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2070: district_obj.annual_pumping[0][year_counter] -= private_obj.annual_pumping[district_key][year_counter]
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2070, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_year_counter);
__pyx_t_16 = __pyx_v_year_counter;
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2070, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_year_counter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_16, __pyx_t_21) < 0)) __PYX_ERR(0, 2070, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2071: if district_obj.annual_pumping[0][year_counter] < 0.0:
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2071, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2071, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_counter); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2071, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2071, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2071, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
+2072: private_obj.annual_pumping[district_key][year_counter] += district_obj.annual_pumping[0][year_counter]
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2072, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_year_counter);
__pyx_t_16 = __pyx_v_year_counter;
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2072, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_year_counter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_16, __pyx_t_4) < 0)) __PYX_ERR(0, 2072, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2073: district_obj.annual_pumping[0][year_counter] = 0.0
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2073, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2073, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_year_counter, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2073, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2074:
+2075: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2075, __pyx_L1_error) #else __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); #endif if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2075, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_15)); __pyx_t_15 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2076: for t in range(0, urban_historical_T):
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_urban_historical_T); __Pyx_GIVEREF(__pyx_v_urban_historical_T); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_urban_historical_T); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_15 = __pyx_t_10; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0; __pyx_t_9 = NULL; } else { __pyx_t_11 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2076, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_15))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2076, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2076, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_15); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2076, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2077: wateryear = index_urban_water_year[t]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_10); __pyx_t_10 = 0;
+2078: dowy = index_urban_dowy[t]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_10); __pyx_t_10 = 0;
+2079: regression_percent[district_obj][dowy][wateryear] = district_obj.annual_pumping[0][wateryear]/self.observed_hro_pred[t]
if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2079, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2079, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_wateryear, __pyx_t_16) < 0)) __PYX_ERR(0, 2079, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2080:
+2081: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2081, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_15); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2081, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2081, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2081, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_15));
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2082: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2082, __pyx_L1_error)
}
__pyx_t_15 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2082, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_15, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_16);
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2083: for t in range(0, urban_historical_T):
__pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_urban_historical_T); __Pyx_GIVEREF(__pyx_v_urban_historical_T); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_v_urban_historical_T); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_16 = __pyx_t_3; __Pyx_INCREF(__pyx_t_16); __pyx_t_17 = 0; __pyx_t_9 = NULL; } else { __pyx_t_17 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_9 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2083, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_16))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_16)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2083, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_16)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2083, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_9(__pyx_t_16); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2083, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2084: wateryear = index_urban_water_year[t]
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3); __pyx_t_3 = 0;
+2085: dowy = index_urban_dowy[t]
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_3); __pyx_t_3 = 0;
+2086: regression_percent[private_obj][district_key][dowy][wateryear] = private_obj.annual_pumping[district_key][wateryear]/self.observed_hro_pred[t]
if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2086, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2086, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_wateryear, __pyx_t_4) < 0)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2087: #regression_percent[private_obj][district_key][y] = private_obj.annual_pumping[district_key][y]
2088:
2089:
+2090: sri_forecast_dowy = np.zeros((365,numYears_urban))
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_365); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_numYears_urban); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_15); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_v_sri_forecast_dowy = __pyx_t_1; __pyx_t_1 = 0;
+2091: pumping_forecast_dowy = np.zeros((365, numYears_urban))
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_int_365); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_v_numYears_urban); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_4, __pyx_t_16) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_16); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_pumping_forecast_dowy = __pyx_t_1; __pyx_t_1 = 0;
+2092: pumping_forecast_timeseries = np.zeros(365 * numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Multiply(__pyx_int_365, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_15); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_v_pumping_forecast_timeseries = __pyx_t_1; __pyx_t_1 = 0;
+2093: for t in range(0, urban_historical_T):
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_urban_historical_T); __Pyx_GIVEREF(__pyx_v_urban_historical_T); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_urban_historical_T); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) { __pyx_t_1 = __pyx_t_16; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; __pyx_t_9 = NULL; } else { __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2093, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2093, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2093, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } } else { __pyx_t_16 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_16)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2093, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_16); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_16); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2094: wateryear = index_urban_water_year[t]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_16); __pyx_t_16 = 0;
+2095: dowy = index_urban_dowy[t]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_16); __pyx_t_16 = 0;
+2096: sri_forecast_dowy[dowy][wateryear] = SRI_forecast[t]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_SRI_forecast, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_sri_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_wateryear, __pyx_t_16) < 0)) __PYX_ERR(0, 2096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2097: pumping_forecast_dowy[dowy][wateryear] = self.observed_hro_pred[t]
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2097, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_wateryear, __pyx_t_16) < 0)) __PYX_ERR(0, 2097, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2098: if wateryear >= urban_start_regression:
__pyx_t_16 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_v_urban_start_regression, Py_GE); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2098, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2098, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_6) { /* … */ }
+2099: pumping_forecast_timeseries[(wateryear - urban_start_regression)*365 + dowy] = pumping_forecast_dowy[dowy][wateryear] * 1.0
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Multiply(__pyx_t_15, __pyx_float_1_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = PyNumber_Multiply(__pyx_t_15, __pyx_int_365); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Add(__pyx_t_4, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_15, __pyx_t_16) < 0)) __PYX_ERR(0, 2099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2100:
+2101: regression_errors = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_regression_errors = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2102: regression_errors_timeseries = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_regression_errors_timeseries = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2103: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2103, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2103, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16)); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2104: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2105: regression_errors[district_obj] = np.zeros((365,numYears_urban - urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_15, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_regression_errors, ((PyObject *)__pyx_v_district_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2106: regression_errors_timeseries[district_obj] = np.zeros(365*(numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = PyNumber_Multiply(__pyx_int_365, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_15); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyDict_SetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_district_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2107: error_changes = np.zeros((365, numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF_SET(__pyx_v_error_changes, __pyx_t_16); __pyx_t_16 = 0;
+2108: pumping_changes = np.zeros((365, numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_15, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_pumping_changes, __pyx_t_16); __pyx_t_16 = 0;
2109:
+2110: for wateryear_day in range(0,365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_16 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_16);
__pyx_t_16 = 0;
2111: #coef = np.polyfit(sri_forecast_dowy[wateryear_day][urban_start_regression:-1], regression_percent[district_obj][urban_start_regression:-1],1)
+2112: coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[district_obj][wateryear_day][urban_start_regression:],1)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_10, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_t_15, __pyx_t_4, __pyx_int_1}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_t_15, __pyx_t_4, __pyx_int_1}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_2 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_int_1); __pyx_t_15 = 0; __pyx_t_4 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_16); __pyx_t_16 = 0;
+2113: if self.use_sensitivity:
__pyx_t_6 = (__pyx_v_self->use_sensitivity != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L96;
}
+2114: district_obj.delivery_percent_coefficient[0][wateryear_day][0] = self.sensitivity_factors['urban_wet_year_demand_reduction']['realization']*coef[0]
if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2114, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_urban_wet_year_demand_reduction); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_realization); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2114, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2114, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2115: else:
+2116: district_obj.delivery_percent_coefficient[0][wateryear_day][0] = coef[0]
/*else*/ {
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2116, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2116, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L96:;
+2117: district_obj.delivery_percent_coefficient[0][wateryear_day][1] = coef[1]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2117, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 1, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2118:
2119:
+2120: if district_obj.key == 'xxx':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_xxx, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2120, __pyx_L1_error) __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { /* … */ }
+2121: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_figure); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_16); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_2); __pyx_t_2 = 0;
+2122: sri = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_sri, __pyx_t_2); __pyx_t_2 = 0;
+2123: percent = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_3, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_percent, __pyx_t_2); __pyx_t_2 = 0;
+2124: ax1 = fig.add_subplot(4,5,counter1)
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2124, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2124, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_4 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_int_4); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_int_5); __Pyx_INCREF(__pyx_v_counter1); __Pyx_GIVEREF(__pyx_v_counter1); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_v_counter1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_2); __pyx_t_2 = 0;
2125:
2126:
+2127: for yy in range(urban_start_regression,numYears_urban):
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) { __pyx_t_2 = __pyx_t_16; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; __pyx_t_9 = NULL; } else { __pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2127, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2127, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_16); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2127, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } } else { __pyx_t_16 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_16)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2127, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_16); } __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_16); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2128: sri[yy] = pumping_forecast_dowy[wateryear_day][yy]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(PyObject_SetItem(__pyx_v_sri, __pyx_v_yy, __pyx_t_4) < 0)) __PYX_ERR(0, 2128, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2129: percent[yy] = regression_percent[district_obj][wateryear_day][yy]
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(PyObject_SetItem(__pyx_v_percent, __pyx_v_yy, __pyx_t_4) < 0)) __PYX_ERR(0, 2129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2130: ax1.scatter(sri[urban_start_regression:], percent[urban_start_regression:], s=50, c='red', edgecolor='none', alpha=0.7)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_sri, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_16 = __Pyx_PyObject_GetSlice(__pyx_v_percent, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_16); __pyx_t_4 = 0; __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2130, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2130, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2130, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2130, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2131: ax1.plot([np.max(sri), 0.0], [(np.max(sri)*coef[0] + coef[1]), coef[1]],c='red')
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_16); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_16); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_0); __pyx_t_16 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_max); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_3, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyNumber_Multiply(__pyx_t_16, __pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyNumber_Add(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_16); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_15); __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2131, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2132: ax1.set_xlim([np.min(sri), np.max(sri)])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_15 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_16); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2133: counter1 += 1
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_2); __pyx_t_2 = 0;
+2134: if counter1 == 21:
__pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* … */ }
+2135: plt.show()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_show); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2136: plt.close()
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_plt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2137: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_figure); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_2); __pyx_t_2 = 0;
+2138: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
2139:
2140:
+2141: for wateryear_count in range(urban_start_regression,numYears_urban):
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_2 = __pyx_t_10; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; __pyx_t_9 = NULL; } else { __pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2141, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2141, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2141, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2141, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
+2142: regression_errors[district_obj][wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_dowy[wateryear_day][wateryear_count]*district_obj.delivery_percent_coefficient[0][wateryear_day][0] + district_obj.delivery_percent_coefficient[0][wateryear_day][1] - regression_percent[district_obj][wateryear_day][wateryear_count]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2142, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_16, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Multiply(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2142, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Subtract(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_10, __pyx_t_16) < 0)) __PYX_ERR(0, 2142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2143:
+2144: regression_errors_timeseries[district_obj][(wateryear_count - urban_start_regression)*365 + wateryear_day] = pumping_forecast_dowy[wateryear_day][wateryear_count]*district_obj.delivery_percent_coefficient[0][wateryear_day][0] + district_obj.delivery_percent_coefficient[0][wateryear_day][1] - regression_percent[district_obj][wateryear_day][wateryear_count]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2144, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_10, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2144, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_10, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_10, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_10 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = PyNumber_Multiply(__pyx_t_10, __pyx_int_365); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_10, __pyx_t_3) < 0)) __PYX_ERR(0, 2144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2145:
+2146: for wateryear_count in range(urban_start_regression,numYears_urban):
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; __pyx_t_9 = NULL; } else { __pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2146, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2146, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2146, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2146, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2147: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_3);
__pyx_t_3 = 0;
+2148: if (wateryear_count - urban_start_regression)*365 + wateryear_day > 0:
__pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyNumber_Multiply(__pyx_t_3, __pyx_int_365); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_RichCompare(__pyx_t_3, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_5) { /* … */ } }
+2149: error_changes[wateryear_day][wateryear_count - urban_start_regression] = regression_errors_timeseries[district_obj][(wateryear_count - urban_start_regression)*365 + wateryear_day]*min(wateryear_day/240.0, 1.0) - regression_errors_timeseries[district_obj][(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]*min((wateryear_day-1.0)/240.0, 1.0)
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = PyNumber_Multiply(__pyx_t_3, __pyx_int_365); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_22 = 1.0; __pyx_t_3 = __Pyx_PyFloat_TrueDivideObjC(__pyx_v_wateryear_day, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = PyObject_RichCompare(__pyx_t_15, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { __pyx_t_4 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = __pyx_t_3; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = PyNumber_Multiply(__pyx_t_16, __pyx_int_365); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyNumber_Add(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_16, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_22 = 1.0; __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_v_wateryear_day, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_4, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_15 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_21 = PyObject_RichCompare(__pyx_t_15, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_5) { __pyx_t_21 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __pyx_t_21; __pyx_t_21 = 0; } else { __Pyx_INCREF(__pyx_t_10); __pyx_t_4 = __pyx_t_10; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_t_16, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_3, __pyx_t_4) < 0)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2150: pumping_changes[wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day] - pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]
__pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_int_365); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = PyNumber_Multiply(__pyx_t_4, __pyx_int_365); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_SubtractObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_3, __pyx_t_10) < 0)) __PYX_ERR(0, 2150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2151:
2152:
+2153: pumping_forecast_min = -500.0
__pyx_v_pumping_forecast_min = -500.0;
+2154: pumping_forecast_max = 500.0
__pyx_v_pumping_forecast_max = 500.0;
+2155: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2156: district_obj.demand_auto_errors = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_district_obj->demand_auto_errors); __Pyx_DECREF(__pyx_v_district_obj->demand_auto_errors); __pyx_v_district_obj->demand_auto_errors = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+2157: district_obj.demand_auto_errors[0] = np.zeros((365, numYears_urban - urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_district_obj->demand_auto_errors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2157, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->demand_auto_errors, __pyx_int_0, __pyx_t_2) < 0)) __PYX_ERR(0, 2157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2158: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_2);
__pyx_t_2 = 0;
+2159: day_error_changes = error_changes[wateryear_day]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_day_error_changes, __pyx_t_2); __pyx_t_2 = 0;
+2160: day_pumping_changes = pumping_changes[wateryear_day]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_day_pumping_changes, __pyx_t_2); __pyx_t_2 = 0;
+2161: np_list_1_logi = np.logical_and(day_pumping_changes > pumping_forecast_min, day_pumping_changes < pumping_forecast_max)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_logical_and); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pumping_forecast_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pumping_forecast_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_10, __pyx_t_16}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_10, __pyx_t_16}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } else #endif { __pyx_t_21 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_t_16); __pyx_t_10 = 0; __pyx_t_16 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_np_list_1_logi, __pyx_t_2); __pyx_t_2 = 0;
+2162: day_error_cleaned = day_error_changes[np_list_1_logi]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_day_error_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_day_error_cleaned, __pyx_t_2); __pyx_t_2 = 0;
+2163: day_pumping_cleaned = day_pumping_changes[np_list_1_logi]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_day_pumping_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_day_pumping_cleaned, __pyx_t_2); __pyx_t_2 = 0;
+2164: coef = np.polyfit(day_pumping_cleaned, day_error_cleaned, 1)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_16 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_day_pumping_cleaned); __Pyx_GIVEREF(__pyx_v_day_pumping_cleaned); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_8, __pyx_v_day_pumping_cleaned); __Pyx_INCREF(__pyx_v_day_error_cleaned); __Pyx_GIVEREF(__pyx_v_day_error_cleaned); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_8, __pyx_v_day_error_cleaned); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_8, __pyx_int_1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_2); __pyx_t_2 = 0;
+2165: district_obj.delivery_percent_coefficient[0][wateryear_day][2] = coef[0]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2165, __pyx_L1_error) } __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_16, 2, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2166: district_obj.delivery_percent_coefficient[0][wateryear_day][3] = coef[1]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2166, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_21, 3, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2167: for y in range(urban_start_regression, numYears_urban):
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban); __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) { __pyx_t_2 = __pyx_t_21; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; __pyx_t_9 = NULL; } else { __pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2167, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2167, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2167, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif } } else { __pyx_t_21 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_21)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2167, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_21); } __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_21); __pyx_t_21 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2168: district_obj.demand_auto_errors[0][wateryear_day][y-urban_start_regression] = pumping_changes[wateryear_day][y - urban_start_regression] * district_obj.delivery_percent_coefficient[0][wateryear_day][2] + district_obj.delivery_percent_coefficient[0][wateryear_day][3] - error_changes[wateryear_day][y - urban_start_regression]
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_16 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2168, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_21, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_t_16); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2168, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_4, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_21, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_21 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_21); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Subtract(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_district_obj->demand_auto_errors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2168, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_auto_errors, __pyx_int_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_10, __pyx_t_21) < 0)) __PYX_ERR(0, 2168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2169:
+2170: if district_obj.key == 'XXX':
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2170, __pyx_L1_error) __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ } }
+2171: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_figure); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_10); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_2); __pyx_t_2 = 0;
+2172: ax1 = fig.add_subplot(4,5,counter1)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_4 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_int_4); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_int_5); __Pyx_INCREF(__pyx_v_counter1); __Pyx_GIVEREF(__pyx_v_counter1); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_v_counter1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_2); __pyx_t_2 = 0;
+2173: ax1.scatter(day_pumping_changes, day_error_changes, s=50, c='red', edgecolor='none', alpha=0.7)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_day_pumping_changes); __Pyx_GIVEREF(__pyx_v_day_pumping_changes); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_day_pumping_changes); __Pyx_INCREF(__pyx_v_day_error_changes); __Pyx_GIVEREF(__pyx_v_day_error_changes); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_day_error_changes); __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2173, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2173, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2173, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2173, __pyx_L1_error) __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2174: ax1.plot([np.max(day_pumping_changes), np.min(day_pumping_changes)], [(np.max(day_pumping_changes)*coef[0] + coef[1]), np.min(day_pumping_changes)*coef[0] + coef[1]],c='red')
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_10, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_min); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_10, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyList_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_16, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_10 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_10); __pyx_t_2 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3); __pyx_t_16 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2174, __pyx_L1_error) __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2175: ax1.set_xlim([np.min(day_pumping_changes), np.max(day_pumping_changes)])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_16 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2176: ax1.set_title(wateryear_day)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_title); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_wateryear_day) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_wateryear_day); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2177: counter1 += 1
__pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_16); __pyx_t_16 = 0;
+2178: if counter1 == 21:
__pyx_t_16 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_6) { /* … */ }
+2179: plt.show()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_show); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2180: plt.close()
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_plt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2181: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_figure); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_16); __pyx_t_16 = 0;
+2182: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
2183:
2184:
+2185: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2185, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2185, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2185, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2185, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2186: regression_errors[private_obj] = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyDict_SetItem(__pyx_v_regression_errors, ((PyObject *)__pyx_v_private_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2187: regression_errors_timeseries[private_obj] = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyDict_SetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_private_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2188: private_obj.demand_auto_errors = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_private_obj->demand_auto_errors); __Pyx_DECREF(__pyx_v_private_obj->demand_auto_errors); __pyx_v_private_obj->demand_auto_errors = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2189: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2189, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2189, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2190: regression_errors[private_obj][district_key] = np.zeros((365,numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_district_key, __pyx_t_4) < 0)) __PYX_ERR(0, 2190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2191: regression_errors_timeseries[private_obj][district_key] = np.zeros(365*(numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_int_365, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_district_key, __pyx_t_4) < 0)) __PYX_ERR(0, 2191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2192:
+2193: error_changes = np.zeros((365, numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_error_changes, __pyx_t_4); __pyx_t_4 = 0;
+2194: pumping_changes = np.zeros((365, numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_pumping_changes, __pyx_t_4); __pyx_t_4 = 0;
2195:
+2196: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
2197: #fig = plt.figure()
+2198: for wateryear_day in range(0,365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_4);
__pyx_t_4 = 0;
2199:
2200: #coef = np.polyfit(sri_forecast_dowy[wateryear_day][urban_start_regression:-1], regression_percent[private_obj][district_key][urban_start_regression:-1],1)
+2201: coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[private_obj][district_key][wateryear_day][urban_start_regression:],1)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_21, __pyx_int_1}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_21, __pyx_int_1}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_21); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_int_1); __pyx_t_3 = 0; __pyx_t_21 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_4); __pyx_t_4 = 0;
+2202: if self.use_sensitivity:
__pyx_t_6 = (__pyx_v_self->use_sensitivity != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L120;
}
+2203: private_obj.delivery_percent_coefficient[district_key][wateryear_day][0] = self.sensitivity_factors['urban_wet_year_demand_reduction']['realization']*coef[0]
if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2203, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_urban_wet_year_demand_reduction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_realization); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_15 = PyNumber_Multiply(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2203, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_10, 0, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2203, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
2204: else:
+2205: private_obj.delivery_percent_coefficient[district_key][wateryear_day][0] = coef[0]
/*else*/ {
__pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2205, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2205, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2205, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2205, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_4, 0, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2205, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__pyx_L120:;
2206:
+2207: private_obj.delivery_percent_coefficient[district_key][wateryear_day][1] = coef[1]
__pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2207, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_10, 1, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2208: for wateryear_count in range(urban_start_regression,numYears_urban):
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_numYears_urban); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_15 = __pyx_t_10; __Pyx_INCREF(__pyx_t_15); __pyx_t_17 = 0; __pyx_t_9 = NULL; } else { __pyx_t_17 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2208, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_15))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2208, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_15); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2208, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; }
+2209: regression_errors[private_obj][district_key][wateryear_day][wateryear_count-urban_start_regression] = pumping_forecast_dowy[wateryear_day][wateryear_count]*private_obj.delivery_percent_coefficient[district_key][wateryear_day][0] + private_obj.delivery_percent_coefficient[district_key][wateryear_day][1] - regression_percent[private_obj][district_key][wateryear_day][wateryear_count]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2209, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_21, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2209, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_21, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_4, __pyx_t_10) < 0)) __PYX_ERR(0, 2209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2210: regression_errors_timeseries[private_obj][district_key][(wateryear_count - urban_start_regression)*365 + wateryear_day] = pumping_forecast_dowy[wateryear_day][wateryear_count]*private_obj.delivery_percent_coefficient[district_key][wateryear_day][0] + private_obj.delivery_percent_coefficient[district_key][wateryear_day][1] - regression_percent[private_obj][district_key][wateryear_day][wateryear_count]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2210, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_21, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2210, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_21, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_3 = PyNumber_Multiply(__pyx_t_21, __pyx_int_365); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Add(__pyx_t_3, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_21, __pyx_t_10) < 0)) __PYX_ERR(0, 2210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2211:
+2212: for wateryear_count in range(urban_start_regression,numYears_urban):
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_numYears_urban); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_15 = __pyx_t_10; __Pyx_INCREF(__pyx_t_15); __pyx_t_17 = 0; __pyx_t_9 = NULL; } else { __pyx_t_17 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2212, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_15))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2212, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2212, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_15); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2212, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2213: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_10 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2213, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_10);
__pyx_t_10 = 0;
+2214: if (wateryear_count - urban_start_regression)*365 + wateryear_day > 0:
__pyx_t_10 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = PyNumber_Multiply(__pyx_t_10, __pyx_int_365); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_10, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2214, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2214, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_6) { /* … */ } }
+2215: error_changes[wateryear_day][wateryear_count - urban_start_regression] = regression_errors_timeseries[private_obj][district_key][(wateryear_count - urban_start_regression)*365 + wateryear_day]*min(wateryear_day/240.0, 1.0) - regression_errors_timeseries[private_obj][district_key][(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]*min((wateryear_day-1.0)/240.0, 1.0)
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = PyNumber_Multiply(__pyx_t_21, __pyx_int_365); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Add(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_22 = 1.0; __pyx_t_21 = __Pyx_PyFloat_TrueDivideObjC(__pyx_v_wateryear_day, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_3 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_6) { __pyx_t_2 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __pyx_t_2; __pyx_t_2 = 0; } else { __Pyx_INCREF(__pyx_t_21); __pyx_t_10 = __pyx_t_21; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = PyNumber_Multiply(__pyx_t_10, __pyx_int_365); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_2, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_10, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_22 = 1.0; __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_v_wateryear_day, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_2, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_6) { __pyx_t_12 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = __pyx_t_12; __pyx_t_12 = 0; } else { __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_21, __pyx_t_2) < 0)) __PYX_ERR(0, 2215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2216: pumping_changes[wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day] - pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]
__pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PyNumber_Multiply(__pyx_t_2, __pyx_int_365); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_int_365); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_21, __pyx_t_4) < 0)) __PYX_ERR(0, 2216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2217:
+2218: private_obj.demand_auto_errors[district_key] = np.zeros((365,numYears_urban-urban_start_regression))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_365); __Pyx_GIVEREF(__pyx_int_365); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_365); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_15 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_private_obj->demand_auto_errors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2218, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->demand_auto_errors, __pyx_v_district_key, __pyx_t_15) < 0)) __PYX_ERR(0, 2218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2219: pumping_forecast_min = -500.0
__pyx_v_pumping_forecast_min = -500.0;
+2220: pumping_forecast_max = 500.0
__pyx_v_pumping_forecast_max = 500.0;
+2221: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_figure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_15 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_15); __pyx_t_15 = 0;
+2222: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2223: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_15 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2223, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_15);
__pyx_t_15 = 0;
+2224: day_error_changes = error_changes[wateryear_day]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_day_error_changes, __pyx_t_15); __pyx_t_15 = 0;
+2225: day_pumping_changes = pumping_changes[wateryear_day]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_day_pumping_changes, __pyx_t_15); __pyx_t_15 = 0;
+2226: np_list_1_logi = np.logical_and(day_pumping_changes > pumping_forecast_min, day_pumping_changes < pumping_forecast_max)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_logical_and); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pumping_forecast_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_pumping_forecast_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_10}; __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_10}; __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_10); __pyx_t_4 = 0; __pyx_t_10 = 0; __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_12, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_np_list_1_logi, __pyx_t_15); __pyx_t_15 = 0;
+2227: day_error_cleaned = day_error_changes[np_list_1_logi]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_day_error_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_day_error_cleaned, __pyx_t_15); __pyx_t_15 = 0;
+2228: day_pumping_cleaned = day_pumping_changes[np_list_1_logi]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_day_pumping_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_day_pumping_cleaned, __pyx_t_15); __pyx_t_15 = 0;
+2229: coef = np.polyfit(day_pumping_cleaned, day_error_cleaned, 1)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1}; __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1}; __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif { __pyx_t_10 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_day_pumping_cleaned); __Pyx_GIVEREF(__pyx_v_day_pumping_cleaned); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_8, __pyx_v_day_pumping_cleaned); __Pyx_INCREF(__pyx_v_day_error_cleaned); __Pyx_GIVEREF(__pyx_v_day_error_cleaned); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_8, __pyx_v_day_error_cleaned); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_8, __pyx_int_1); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_10, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_15); __pyx_t_15 = 0;
+2230: private_obj.delivery_percent_coefficient[district_key][wateryear_day][2] = coef[0]
__pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2230, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_10, 2, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2230, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2231: private_obj.delivery_percent_coefficient[district_key][wateryear_day][3] = coef[1]
__pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2231, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_12, 3, __pyx_t_15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2232: for y in range(urban_start_regression, numYears_urban):
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_numYears_urban); __pyx_t_12 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_15, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { __pyx_t_15 = __pyx_t_12; __Pyx_INCREF(__pyx_t_15); __pyx_t_17 = 0; __pyx_t_9 = NULL; } else { __pyx_t_17 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2232, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_15))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2232, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2232, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_9(__pyx_t_15); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2232, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_12); } __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_12); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2233: private_obj.demand_auto_errors[district_key][wateryear_day][y-urban_start_regression] = pumping_changes[wateryear_day][y - urban_start_regression] * private_obj.delivery_percent_coefficient[district_key][wateryear_day][2] + private_obj.delivery_percent_coefficient[district_key][wateryear_day][3] - error_changes[wateryear_day][y - urban_start_regression]
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2233, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_12, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Multiply(__pyx_t_21, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2233, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_21, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_Add(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_private_obj->demand_auto_errors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2233, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_auto_errors, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_4, __pyx_t_12) < 0)) __PYX_ERR(0, 2233, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
2234:
+2235: if private_obj.key == 'XXX':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_private_obj->key, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2235, __pyx_L1_error) __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { /* … */ } }
+2236: ax1 = fig.add_subplot(4,5,counter1)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_15); } else #endif { __pyx_t_21 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_int_4); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_int_5); __Pyx_INCREF(__pyx_v_counter1); __Pyx_GIVEREF(__pyx_v_counter1); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_counter1); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_21, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_15); __pyx_t_15 = 0;
+2237: ax1.scatter(day_pumping_changes, day_error_changes, s=50, c='red', edgecolor='none', alpha=0.7)
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_day_pumping_changes); __Pyx_GIVEREF(__pyx_v_day_pumping_changes); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_day_pumping_changes); __Pyx_INCREF(__pyx_v_day_error_changes); __Pyx_GIVEREF(__pyx_v_day_error_changes); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_day_error_changes); __pyx_t_21 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2237, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2237, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2237, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2237, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2238: ax1.plot([np.max(day_pumping_changes), np.min(day_pumping_changes)], [(np.max(day_pumping_changes)*coef[0] + coef[1]), np.min(day_pumping_changes)*coef[0] + coef[1]],c='red')
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_max); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_21 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_12, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_min); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_15 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_21); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_15); __pyx_t_21 = 0; __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_15 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_21 = PyNumber_Multiply(__pyx_t_15, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyNumber_Add(__pyx_t_21, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_12 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PyNumber_Multiply(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = PyNumber_Add(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_12); __pyx_t_15 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2238, __pyx_L1_error) __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2239: ax1.set_xlim([np.min(day_pumping_changes), np.max(day_pumping_changes)])
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_12 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_4, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_15 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_4, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_day_pumping_changes); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyList_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_21, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_21, 1, __pyx_t_15); __pyx_t_12 = 0; __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_15, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_21); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2240: ax1.set_title(wateryear_day)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_title); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_21, __pyx_v_wateryear_day) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_wateryear_day); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2241: counter1 += 1
__pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_10); __pyx_t_10 = 0;
+2242: if counter1 == 21:
__pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_5) { /* … */ }
+2243: plt.show()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_plt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_show); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_10 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_21); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2244: plt.close()
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_close); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2245: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_plt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_figure); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_10 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_21); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_10); __pyx_t_10 = 0;
+2246: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
2247:
2248:
+2249: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2249, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2249, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2249, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2250: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2250, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2250, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2250, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_10);
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2251: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2252: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_figure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_10); __pyx_t_10 = 0;
+2253: for wateryear_day in range(0,365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_10 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2253, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_10);
__pyx_t_10 = 0;
+2254: coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[private_obj][district_key][wateryear_day][urban_start_regression:],1)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_15, __pyx_t_12, __pyx_int_1}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_15, __pyx_t_12, __pyx_int_1}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_4 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_int_1); __pyx_t_15 = 0; __pyx_t_12 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_10); __pyx_t_10 = 0;
+2255: if private_obj.key == "XXX":
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_private_obj->key, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2255, __pyx_L1_error) __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ } }
+2256: r = np.corrcoef(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[private_obj][district_key][wateryear_day][urban_start_regression:])[0,1]
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_corrcoef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_t_21, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyObject_GetSlice(__pyx_t_21, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_21, __pyx_t_12, __pyx_t_15}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_21, __pyx_t_12, __pyx_t_15}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_t_15); __pyx_t_12 = 0; __pyx_t_15 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_tuple__25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_tuple__25 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 2256, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25);
+2257: sri = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_10, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_sri, __pyx_t_4); __pyx_t_4 = 0;
+2258: percent = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_2, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_percent, __pyx_t_4); __pyx_t_4 = 0;
+2259: ax1 = fig.add_subplot(4,5,counter1)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2259, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_int_4, __pyx_int_5, __pyx_v_counter1}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2259, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_int_4); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_int_5); __Pyx_INCREF(__pyx_v_counter1); __Pyx_GIVEREF(__pyx_v_counter1); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_v_counter1); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_4); __pyx_t_4 = 0;
2260:
+2261: for yy in range(urban_start_regression,numYears_urban):
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_urban_start_regression); __Pyx_GIVEREF(__pyx_v_urban_start_regression); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_urban_start_regression); __Pyx_INCREF(__pyx_v_numYears_urban); __Pyx_GIVEREF(__pyx_v_numYears_urban); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_numYears_urban); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_4 = __pyx_t_10; __Pyx_INCREF(__pyx_t_4); __pyx_t_17 = 0; __pyx_t_9 = NULL; } else { __pyx_t_17 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2261, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_9(__pyx_t_4); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2261, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_10); } __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2262: sri[yy] = pumping_forecast_dowy[wateryear_day][yy]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_yy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyObject_SetItem(__pyx_v_sri, __pyx_v_yy, __pyx_t_15) < 0)) __PYX_ERR(0, 2262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2263: percent[yy] = regression_percent[private_obj][district_key][wateryear_day][yy]
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_yy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_v_percent, __pyx_v_yy, __pyx_t_10) < 0)) __PYX_ERR(0, 2263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2264: ax1.scatter(sri, percent, s=50, c='red', edgecolor='none', alpha=0.7)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_sri); __Pyx_GIVEREF(__pyx_v_sri); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_sri); __Pyx_INCREF(__pyx_v_percent); __Pyx_GIVEREF(__pyx_v_percent); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_percent); __pyx_t_15 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2264, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2264, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2264, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2264, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2265: ax1.plot([np.max(sri), 0.0], [(np.max(sri)*coef[0] + coef[1]), coef[1]],c='red')
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_15 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_15); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_0_0); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_max); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_15 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_10, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyNumber_Multiply(__pyx_t_15, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyNumber_Add(__pyx_t_10, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_12); __pyx_t_15 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_10); __pyx_t_4 = 0; __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2265, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2266: ax1.set_xlim([np.min(sri), np.max(sri)])
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_min); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_2, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_max); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_15 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_2, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_sri); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyList_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_21, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_21, 1, __pyx_t_15); __pyx_t_12 = 0; __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_15, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_21); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2267: counter1 += 1
__pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_4); __pyx_t_4 = 0;
+2268: if counter1 == 21:
__pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { /* … */ }
+2269: plt.show()
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_plt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_show); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_21); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2270: plt.close()
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_close); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_10); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2271: fig = plt.figure()
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_plt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_figure); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_21); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_4); __pyx_t_4 = 0;
+2272: counter1 = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
2273: #plt.show()
2274: #plt.close()
2275:
2276:
+2277: if self.model_mode == 'simulation' or self.model_mode == 'climate_ensemble' or self.model_mode == 'sensitivity':
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_simulation, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2277, __pyx_L1_error) __pyx_t_23 = (__pyx_t_5 != 0); if (!__pyx_t_23) { } else { __pyx_t_6 = __pyx_t_23; goto __pyx_L145_bool_binop_done; } __pyx_t_23 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_23 < 0)) __PYX_ERR(0, 2277, __pyx_L1_error) __pyx_t_5 = (__pyx_t_23 != 0); if (!__pyx_t_5) { } else { __pyx_t_6 = __pyx_t_5; goto __pyx_L145_bool_binop_done; } __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_sensitivity, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2277, __pyx_L1_error) __pyx_t_23 = (__pyx_t_5 != 0); __pyx_t_6 = __pyx_t_23; __pyx_L145_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2278: ytd_pumping_int = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ytd_pumping_int = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2279: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2279, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2279, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16)); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2280: district_obj.hist_demand_dict = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_district_obj->hist_demand_dict); __Pyx_DECREF(__pyx_v_district_obj->hist_demand_dict); __pyx_v_district_obj->hist_demand_dict = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2281: ytd_pumping_int[district_obj] = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_16 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_4, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(PyDict_SetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_district_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2282: district_obj.hist_demand_dict['annual_sorted'] = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2282, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_annual_sorted, __pyx_t_16) < 0)) __PYX_ERR(0, 2282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2283: district_obj.hist_demand_dict['sorted_index'] = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2283, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_sorted_index, __pyx_t_16) < 0)) __PYX_ERR(0, 2283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2284: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_16 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_16);
__pyx_t_16 = 0;
+2285: district_obj.hist_demand_dict['annual_sorted'][wateryear_day] = np.sort(regression_annual_hro[urban_start_regression:-1])
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_sort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_INCREF(__pyx_v_urban_start_regression); __pyx_t_21 = __pyx_v_urban_start_regression; __pyx_t_6 = (__pyx_t_21 == Py_None); if (__pyx_t_6) { __pyx_t_11 = 0; } else { __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_t_21); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2285, __pyx_L1_error) __pyx_t_11 = __pyx_t_17; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_11, -1L); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_21); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2285, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_wateryear_day, __pyx_t_16) < 0)) __PYX_ERR(0, 2285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2286: district_obj.hist_demand_dict['sorted_index'][wateryear_day] = np.argsort(regression_annual_hro[urban_start_regression:-1])
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_argsort); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_v_urban_start_regression); __pyx_t_4 = __pyx_v_urban_start_regression; __pyx_t_6 = (__pyx_t_4 == Py_None); if (__pyx_t_6) { __pyx_t_11 = 0; } else { __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2286, __pyx_L1_error) __pyx_t_11 = __pyx_t_17; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_11, -1L); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_16 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2286, __pyx_L1_error) } __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_wateryear_day, __pyx_t_16) < 0)) __PYX_ERR(0, 2286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; }
+2287: district_obj.hist_demand_dict['daily_fractions'] = np.zeros((len(regression_annual[district_obj]) - urban_start_regression,366))
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_11 = PyObject_Length(__pyx_t_21); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = PyNumber_Subtract(__pyx_t_21, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_10); __Pyx_INCREF(__pyx_int_366); __Pyx_GIVEREF(__pyx_int_366); PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_int_366); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_16 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_21); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2287, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions, __pyx_t_16) < 0)) __PYX_ERR(0, 2287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2288: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2288, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2288, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2288, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2288, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2289: private_obj.hist_demand_dict = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_private_obj->hist_demand_dict); __Pyx_DECREF(__pyx_v_private_obj->hist_demand_dict); __pyx_v_private_obj->hist_demand_dict = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2290: ytd_pumping_int[private_obj] = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyDict_SetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_private_obj), __pyx_t_16) < 0)) __PYX_ERR(0, 2290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2291: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2291, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2291, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2292: private_obj.hist_demand_dict[district_key] = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2292, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key, __pyx_t_4) < 0)) __PYX_ERR(0, 2292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2293: ytd_pumping_int[private_obj][district_key] = np.zeros(numYears_urban)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_21, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_numYears_urban); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_district_key, __pyx_t_4) < 0)) __PYX_ERR(0, 2293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2294: private_obj.hist_demand_dict[district_key]['annual_sorted'] = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2294, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_n_u_annual_sorted, __pyx_t_4) < 0)) __PYX_ERR(0, 2294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2295: private_obj.hist_demand_dict[district_key]['sorted_index'] = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2295, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_n_u_sorted_index, __pyx_t_4) < 0)) __PYX_ERR(0, 2295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2296: for wateryear_day in range(0, 365):
for (__pyx_t_14 = 0; __pyx_t_14 < 0x16D; __pyx_t_14+=1) {
__pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_4);
__pyx_t_4 = 0;
+2297: private_obj.hist_demand_dict[district_key]['annual_sorted'][wateryear_day] = np.sort(regression_annual_hro[urban_start_regression:-1])
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_sort); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_INCREF(__pyx_v_urban_start_regression); __pyx_t_10 = __pyx_v_urban_start_regression; __pyx_t_6 = (__pyx_t_10 == Py_None); if (__pyx_t_6) { __pyx_t_17 = 0; } else { __pyx_t_18 = __Pyx_PyIndex_AsSsize_t(__pyx_t_10); if (unlikely((__pyx_t_18 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2297, __pyx_L1_error) __pyx_t_17 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_17, -1L); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_4 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_15, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_10); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2297, __pyx_L1_error) } __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_wateryear_day, __pyx_t_4) < 0)) __PYX_ERR(0, 2297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2298: private_obj.hist_demand_dict[district_key]['sorted_index'][wateryear_day] = np.argsort(regression_annual_hro[urban_start_regression:-1])
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_argsort); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_INCREF(__pyx_v_urban_start_regression); __pyx_t_10 = __pyx_v_urban_start_regression; __pyx_t_6 = (__pyx_t_10 == Py_None); if (__pyx_t_6) { __pyx_t_17 = 0; } else { __pyx_t_18 = __Pyx_PyIndex_AsSsize_t(__pyx_t_10); if (unlikely((__pyx_t_18 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2298, __pyx_L1_error) __pyx_t_17 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_17, -1L); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_4 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_15, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_10); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2298, __pyx_L1_error) } __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_wateryear_day, __pyx_t_4) < 0)) __PYX_ERR(0, 2298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+2299: private_obj.hist_demand_dict[district_key]['daily_fractions'] = np.zeros((numYears_urban - urban_start_regression,366))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10); __Pyx_INCREF(__pyx_int_366); __Pyx_GIVEREF(__pyx_int_366); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_int_366); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_10, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_15); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2299, __pyx_L1_error) } __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_n_u_daily_fractions, __pyx_t_4) < 0)) __PYX_ERR(0, 2299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2300:
+2301: for t in range(0,urban_historical_T):
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_urban_historical_T); __Pyx_GIVEREF(__pyx_v_urban_historical_T); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_urban_historical_T); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) { __pyx_t_1 = __pyx_t_16; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; __pyx_t_9 = NULL; } else { __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2301, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2301, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2301, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } } else { __pyx_t_16 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_16)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2301, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_16); } __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_16); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2302: dowy = index_urban_dowy[t]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_16); __pyx_t_16 = 0;
+2303: wateryear = index_urban_water_year[t]
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_16); __pyx_t_16 = 0;
+2304: if wateryear >= urban_start_regression:
__pyx_t_16 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_v_urban_start_regression, Py_GE); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2304, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_6) { /* … */ }
+2305: for district_obj in urban_list:
__pyx_t_16 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2305, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2305, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_4)); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2306: predicted_annual_demand = 1000.0 * self.observed_hro_pred[t] * ((self.observed_hro_pred[t] * district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1])*max(240.0 - dowy, 0.0)/240.0 + regression_percent[district_obj][dowy][wateryear]*min(dowy, 240.0)/240.0)
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2306, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_21 = PyNumber_Multiply(__pyx_float_1000_0, __pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2306, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2306, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Multiply(__pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2306, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_10, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_22 = 0.0;
__pyx_t_15 = __Pyx_PyFloat_SubtractCObj(__pyx_float_240_0, __pyx_v_dowy, 240.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_12, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_6) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_10 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_15, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_22 = 240.0;
__Pyx_INCREF(__pyx_v_dowy);
__pyx_t_4 = __pyx_v_dowy;
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_12, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_2 = __pyx_t_4;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Multiply(__pyx_t_15, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_4, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_predicted_annual_demand, __pyx_t_2);
__pyx_t_2 = 0;
+2307: if predicted_annual_demand - ytd_pumping_int[district_obj][wateryear] > 0.0:
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L163; }
+2308: district_obj.hist_demand_dict['daily_fractions'][wateryear - urban_start_regression][dowy] = (district_obj.pumping[0][t])/(predicted_annual_demand - ytd_pumping_int[district_obj][wateryear])
if (unlikely(__pyx_v_district_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2308, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2308, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_dowy, __pyx_t_21) < 0)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2309: else:
+2310: district_obj.hist_demand_dict['daily_fractions'][wateryear - urban_start_regression][dowy] = 0.0/365.0
/*else*/ {
__pyx_t_21 = PyFloat_FromDouble((0.0 / 365.0)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2310, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_dowy, __pyx_t_21) < 0)) __PYX_ERR(0, 2310, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__pyx_L163:;
+2311: ytd_pumping_int[district_obj][wateryear] += district_obj.pumping[0][t]
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_district_obj)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(__pyx_v_wateryear); __pyx_t_4 = __pyx_v_wateryear; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2311, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->pumping, __pyx_int_0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_4, __pyx_t_10) < 0)) __PYX_ERR(0, 2311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2312:
+2313: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2313, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2313, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2313, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2314: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2314, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_17); __Pyx_INCREF(__pyx_t_4); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 2314, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_21, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2315: predicted_annual_demand = 1000.0 * self.observed_hro_pred[t] * ((self.observed_hro_pred[t] * private_obj.delivery_percent_coefficient[district_key][dowy][0] + private_obj.delivery_percent_coefficient[district_key][dowy][1])*max(240.0 - dowy, 0.0)/240.0 + regression_percent[private_obj][district_key][dowy][wateryear]*min(dowy, 240.0)/240.0)
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2315, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_10 = PyNumber_Multiply(__pyx_float_1000_0, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_v_self->observed_hro_pred == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2315, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->observed_hro_pred, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2315, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2315, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_22 = 0.0;
__pyx_t_15 = __Pyx_PyFloat_SubtractCObj(__pyx_float_240_0, __pyx_v_dowy, 240.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_12 = PyObject_RichCompare(__pyx_t_3, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_6) {
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_2 = __pyx_t_12;
__pyx_t_12 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_2 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_15, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_district_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_22 = 240.0;
__Pyx_INCREF(__pyx_v_dowy);
__pyx_t_15 = __pyx_v_dowy;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_24 = PyObject_RichCompare(__pyx_t_3, __pyx_t_15, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
if (__pyx_t_6) {
__pyx_t_24 = PyFloat_FromDouble(__pyx_t_22); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_12 = __pyx_t_24;
__pyx_t_24 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_12 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_15, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Add(__pyx_t_2, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Multiply(__pyx_t_10, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF_SET(__pyx_v_predicted_annual_demand, __pyx_t_12);
__pyx_t_12 = 0;
+2316: if predicted_annual_demand - ytd_pumping_int[private_obj][district_key][wateryear] > 0.0:
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_15, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L168; }
+2317: private_obj.hist_demand_dict[district_key]['daily_fractions'][wateryear - urban_start_regression][dowy] = (private_obj.pumping[district_key][t])/(predicted_annual_demand - ytd_pumping_int[private_obj][district_key][wateryear])
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2317, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2317, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_dowy, __pyx_t_12) < 0)) __PYX_ERR(0, 2317, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
2318: else:
+2319: private_obj.hist_demand_dict[district_key]['daily_fractions'][wateryear - urban_start_regression][dowy] = 0.0/365.0
/*else*/ {
__pyx_t_12 = PyFloat_FromDouble((0.0 / 365.0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__pyx_v_private_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2319, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->hist_demand_dict, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_dowy, __pyx_t_12) < 0)) __PYX_ERR(0, 2319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_L168:;
+2320: ytd_pumping_int[private_obj][district_key][wateryear] += private_obj.pumping[district_key][t]
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_INCREF(__pyx_v_wateryear); __pyx_t_12 = __pyx_v_wateryear; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2320, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_12, __pyx_t_10) < 0)) __PYX_ERR(0, 2320, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
2321:
+2322: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2322, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2322, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2322, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2323: private_obj.annual_pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_private_obj->annual_pumping); __Pyx_DECREF(__pyx_v_private_obj->annual_pumping); __pyx_v_private_obj->annual_pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2324: private_obj.pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_private_obj->pumping); __Pyx_DECREF(__pyx_v_private_obj->pumping); __pyx_v_private_obj->pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2325: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2325, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2325, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2325, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2326: private_obj.annual_pumping[district_key] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_21 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_10, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_15); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2326, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annual_pumping, __pyx_v_district_key, __pyx_t_21) < 0)) __PYX_ERR(0, 2326, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2327: private_obj.pumping[district_key] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_21 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_10, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_12); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2327, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key, __pyx_t_21) < 0)) __PYX_ERR(0, 2327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2328: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2328, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2328, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16)); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2329: district_obj.annual_pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_district_obj->annual_pumping); __Pyx_DECREF(__pyx_v_district_obj->annual_pumping); __pyx_v_district_obj->annual_pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2330: district_obj.pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_district_obj->pumping); __Pyx_DECREF(__pyx_v_district_obj->pumping); __pyx_v_district_obj->pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2331: district_obj.annual_pumping[0] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_16 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_12, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_21); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_district_obj->annual_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2331, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->annual_pumping, __pyx_int_0, __pyx_t_16) < 0)) __PYX_ERR(0, 2331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2332: district_obj.pumping[0] = np.zeros(self.T)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_16 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_12, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_15); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(__pyx_v_district_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2332, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->pumping, __pyx_int_0, __pyx_t_16) < 0)) __PYX_ERR(0, 2332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2333:
+2334: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2334, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2334, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_16)); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2335: district_obj.ytd_pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_district_obj->ytd_pumping); __Pyx_DECREF(__pyx_v_district_obj->ytd_pumping); __pyx_v_district_obj->ytd_pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2336: district_obj.ytd_pumping[0] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_16 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_12, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_21); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_district_obj->ytd_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2336, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->ytd_pumping, __pyx_int_0, __pyx_t_16) < 0)) __PYX_ERR(0, 2336, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2337: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2337, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_16); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2337, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2337, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2338: private_obj.ytd_pumping = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __Pyx_GOTREF(__pyx_v_private_obj->ytd_pumping); __Pyx_DECREF(__pyx_v_private_obj->ytd_pumping); __pyx_v_private_obj->ytd_pumping = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+2339: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2339, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_15); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2339, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_15);
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+2340: private_obj.ytd_pumping[district_key] = np.zeros(self.number_years)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_15 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_10, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_21); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2340, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->ytd_pumping, __pyx_v_district_key, __pyx_t_15) < 0)) __PYX_ERR(0, 2340, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
2341:
2342: ###ACTUAL regression coefficients - picked to pass the 'eye test'
2343: #self.southbay.urb_coef[0] = 0.01
2344: #self.centralcoast.urb_coef[0] = 0.0
2345: #self.socal.urb_coef[0] = 0.5
2346: #self.southbay.urb_coef[1] = 104.0
2347: #self.centralcoast.urb_coef[1] = 110.0
2348: #self.socal.urb_coef[1] = 200.0
2349:
2350: #####################################################################################################################
2351: #####################################################################################################################
2352: #####################################################################################################################
2353:
2354:
2355: #####################################################################################################################
2356: ############################# Main simulation (North & South) ###############################################
2357: #####################################################################################################################
2358:
2359:
+2360: def simulate_north(self,t,swp_release, cvp_release, swp_release2, cvp_release2, swp_pump, cvp_pump):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_49simulate_north(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_49simulate_north(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_swp_release = 0;
PyObject *__pyx_v_cvp_release = 0;
PyObject *__pyx_v_swp_release2 = 0;
PyObject *__pyx_v_cvp_release2 = 0;
PyObject *__pyx_v_swp_pump = 0;
PyObject *__pyx_v_cvp_pump = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("simulate_north (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_swp_release,&__pyx_n_s_cvp_release,&__pyx_n_s_swp_release2,&__pyx_n_s_cvp_release2,&__pyx_n_s_swp_pump,&__pyx_n_s_cvp_pump,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_release)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 1); __PYX_ERR(0, 2360, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_release)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 2); __PYX_ERR(0, 2360, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_release2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 3); __PYX_ERR(0, 2360, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_release2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 4); __PYX_ERR(0, 2360, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_pump)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 5); __PYX_ERR(0, 2360, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_pump)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, 6); __PYX_ERR(0, 2360, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "simulate_north") < 0)) __PYX_ERR(0, 2360, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
}
__pyx_v_t = values[0];
__pyx_v_swp_release = values[1];
__pyx_v_cvp_release = values[2];
__pyx_v_swp_release2 = values[3];
__pyx_v_cvp_release2 = values[4];
__pyx_v_swp_pump = values[5];
__pyx_v_cvp_pump = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("simulate_north", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2360, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.simulate_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_48simulate_north(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_swp_release, __pyx_v_cvp_release, __pyx_v_swp_release2, __pyx_v_cvp_release2, __pyx_v_swp_pump, __pyx_v_cvp_pump);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_48simulate_north(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_swp_release, PyObject *__pyx_v_cvp_release, PyObject *__pyx_v_swp_release2, PyObject *__pyx_v_cvp_release2, PyObject *__pyx_v_swp_pump, PyObject *__pyx_v_cvp_pump) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_da = NULL;
PyObject *__pyx_v_dowy = NULL;
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_y = NULL;
PyObject *__pyx_v_wateryear = NULL;
PyObject *__pyx_v_year_index = NULL;
PyObject *__pyx_v_NMI = NULL;
double __pyx_v_cvp_stored_release;
double __pyx_v_swp_stored_release;
PyObject *__pyx_v_cvp_available_storage = NULL;
PyObject *__pyx_v_swp_available_storage = NULL;
double __pyx_v_cvp_flood_storage;
double __pyx_v_swp_flood_storage;
CYTHON_UNUSED PyObject *__pyx_v_swp_extra = NULL;
PyObject *__pyx_v_cvp_max = NULL;
PyObject *__pyx_v_swp_max = NULL;
PyObject *__pyx_v_proj_surplus = NULL;
PyObject *__pyx_v_max_pumping = NULL;
PyObject *__pyx_v_flood_release = NULL;
PyObject *__pyx_v_flood_volume = NULL;
PyObject *__pyx_v_swp_over_dead_pool = NULL;
double __pyx_v_cvp_over_dead_pool;
PyObject *__pyx_v_cvp_max_final = NULL;
PyObject *__pyx_v_swp_max_final = NULL;
PyObject *__pyx_v_cvp_forgone = NULL;
PyObject *__pyx_v_swp_forgone = NULL;
CYTHON_UNUSED PyObject *__pyx_v_swp_reduced = NULL;
PyObject *__pyx_v_cvp_reduced = NULL;
double __pyx_v_release_switch;
double __pyx_v_cvp_stored_flow;
double __pyx_v_swp_stored_flow;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("simulate_north", 0);
__Pyx_TraceCall("simulate_north", __pyx_f[0], 2360, 0, __PYX_ERR(0, 2360, __pyx_L1_error));
__Pyx_INCREF(__pyx_v_swp_release);
__Pyx_INCREF(__pyx_v_cvp_release);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(((PyObject *)__pyx_t_12));
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(((PyObject *)__pyx_t_22));
__Pyx_AddTraceback("calfews_src.model_cy.Model.simulate_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_da);
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_y);
__Pyx_XDECREF(__pyx_v_wateryear);
__Pyx_XDECREF(__pyx_v_year_index);
__Pyx_XDECREF(__pyx_v_NMI);
__Pyx_XDECREF(__pyx_v_cvp_available_storage);
__Pyx_XDECREF(__pyx_v_swp_available_storage);
__Pyx_XDECREF(__pyx_v_swp_extra);
__Pyx_XDECREF(__pyx_v_cvp_max);
__Pyx_XDECREF(__pyx_v_swp_max);
__Pyx_XDECREF(__pyx_v_proj_surplus);
__Pyx_XDECREF(__pyx_v_max_pumping);
__Pyx_XDECREF(__pyx_v_flood_release);
__Pyx_XDECREF(__pyx_v_flood_volume);
__Pyx_XDECREF(__pyx_v_swp_over_dead_pool);
__Pyx_XDECREF(__pyx_v_cvp_max_final);
__Pyx_XDECREF(__pyx_v_swp_max_final);
__Pyx_XDECREF(__pyx_v_cvp_forgone);
__Pyx_XDECREF(__pyx_v_swp_forgone);
__Pyx_XDECREF(__pyx_v_swp_reduced);
__Pyx_XDECREF(__pyx_v_cvp_reduced);
__Pyx_XDECREF(__pyx_v_swp_release);
__Pyx_XDECREF(__pyx_v_cvp_release);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2361: ###Daily Operations###
2362: ##Step forward environmental parameters (snow & flow)
2363: ##Set Delta operating rules
2364: ##Water Balance on each reservoir
2365: ##Decisions - release water for delta export, flood control
2366: cdef Reservoir reservoir_obj
2367:
+2368: swp_release = 0#turn off any pumping over the E/I ratio 'tax'
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_swp_release, __pyx_int_0);
+2369: cvp_release = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_cvp_release, __pyx_int_0);
2370:
+2371: d = self.day_year[t]
if (unlikely(__pyx_v_self->day_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2371, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->day_year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2371, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_d = __pyx_t_1;
__pyx_t_1 = 0;
+2372: da = self.day_month[t]
if (unlikely(__pyx_v_self->day_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2372, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->day_month, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_da = __pyx_t_1;
__pyx_t_1 = 0;
+2373: dowy = self.dowy[t]
if (unlikely(__pyx_v_self->dowy == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2373, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_dowy = __pyx_t_1;
__pyx_t_1 = 0;
+2374: m = self.month[t]
if (unlikely(__pyx_v_self->month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2374, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->month, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2374, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_m = __pyx_t_1;
__pyx_t_1 = 0;
+2375: y = self.year[t]
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2375, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_y = __pyx_t_1;
__pyx_t_1 = 0;
+2376: wateryear = self.water_year[t]
if (unlikely(__pyx_v_self->water_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2376, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->water_year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2376, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_wateryear = __pyx_t_1;
__pyx_t_1 = 0;
+2377: year_index = y - self.starting_year
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Subtract(__pyx_v_y, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_year_index = __pyx_t_2; __pyx_t_2 = 0;
2378:
2379: ##WATER YEAR TYPE CLASSIFICATION (for operating rules)
2380: ##WYT uses flow forecasts - gets set every day, may want to decrease frequency (i.e. every month, season)
+2381: NMI = self.calc_wytypes(t,dowy)#NMI (new melones index) - used as input for vernalis control rules
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_calc_wytypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_dowy); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NMI = __pyx_t_2; __pyx_t_2 = 0;
2382:
2383: ##REAL-WORLD RULE ADJUSTMENTS
2384: ##Updates to reflect SJRR & Yuba Accalfews_srcs occuring during historical time period (1996-2016)
+2385: if self.model_mode == 'validation':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2385, __pyx_L1_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { /* … */ }
+2386: self.update_regulations_north(t,dowy, year_index + self.starting_year)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_regulations_north); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_t_3}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_t_3}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_8 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2387:
2388: ####NON-PROJECT USES
2389: ##Find out if reservoir releases need to be made for in-stream uses
+2390: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2390, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2390, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2390, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2391: reservoir_obj.rights_call(reservoir_obj.downstream[t])
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_rights_call); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_reservoir_obj->downstream == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2391, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->downstream, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2392: ##any additional losses before the delta inflow (.downstream member only accounts to downstream trib gauge)
2393: ##must be made up by releases from Shasta and New Melones, respectively
2394: #self.newmelones.rights_call(self.delta.gains_sj[t-1],1)
2395:
2396: ##FIND MINIMUM ENVIRONMENTAL RELEASES
2397: #San Joaquin Tributaries
+2398: for reservoir_obj in [self.newmelones, self.donpedro, self.exchequer]:
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->exchequer)); __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_9 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2398, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2399: reservoir_obj.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], self.delta.forecastSJWYT)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_self->first_d_of_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2399, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->first_d_of_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[7] = {__pyx_t_5, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_3, __pyx_v_self->delta->forecastSJWYT}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[7] = {__pyx_t_5, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_3, __pyx_v_self->delta->forecastSJWYT}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_10 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_4, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_GIVEREF(__pyx_v_self->delta->forecastSJWYT); PyTuple_SET_ITEM(__pyx_t_10, 5+__pyx_t_4, __pyx_v_self->delta->forecastSJWYT); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2400: #Sacramento Tributaries
+2401: self.oroville.set_oct_nov_rule(t, m)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->oroville), __pyx_n_s_set_oct_nov_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_t, __pyx_v_m}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_t, __pyx_v_m}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_m); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2402: for reservoir_obj in [self.shasta, self.oroville, self.yuba, self.folsom]:
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->folsom)); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2402, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2403: reservoir_obj.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], self.delta.forecastSCWYT)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(__pyx_v_self->first_d_of_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2403, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->first_d_of_month, __pyx_v_year_index); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_8, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_8, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_5 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_GIVEREF(__pyx_v_self->delta->forecastSCWYT); PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_4, __pyx_v_self->delta->forecastSCWYT); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2404: ##MINIMUM FLOW AT VERNALIS GAUGE(SAN JOAQUIN DELTA INFLOW)
2405: #from self.reservoir.release_environmental() function:
2406: #self.reservoir.gains_to_delta
2407: #self.reservoir.envmin
+2408: self.delta.vernalis_gains = self.newmelones.gains_to_delta + self.donpedro.gains_to_delta + self.exchequer.gains_to_delta + self.delta.gains_sj[t]
__pyx_t_2 = PyFloat_FromDouble(((__pyx_v_self->newmelones->gains_to_delta + __pyx_v_self->donpedro->gains_to_delta) + __pyx_v_self->exchequer->gains_to_delta)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->delta->gains_sj == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2408, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->gains_sj, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2408, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_self->delta->vernalis_gains = __pyx_t_11;
+2409: self.delta.vernalis_gains += self.newmelones.envmin + self.donpedro.envmin + self.exchequer.envmin
__Pyx_INCREF(((PyObject *)__pyx_v_self->delta)); __pyx_t_12 = __pyx_v_self->delta; __pyx_t_12->vernalis_gains = (__pyx_t_12->vernalis_gains + ((__pyx_v_self->newmelones->envmin + __pyx_v_self->donpedro->envmin) + __pyx_v_self->exchequer->envmin)); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
2410: #find additional releases for vernalis control using self.delta.vernalis_gains
+2411: self.exchequer.din, self.donpedro.din, self.newmelones.din = self.delta.calc_vernalis_rule(t,d,y,m,dowy,NMI)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_calc_vernalis_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_y, __pyx_v_m, __pyx_v_dowy, __pyx_v_NMI}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_y, __pyx_v_m, __pyx_v_dowy, __pyx_v_NMI}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { __pyx_t_5 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_y); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_NMI); __Pyx_GIVEREF(__pyx_v_NMI); PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_4, __pyx_v_NMI); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { PyObject* sequence = __pyx_t_10; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2411, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_5 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 2; __pyx_t_2 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_8), 3) < 0) __PYX_ERR(0, 2411, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2411, __pyx_L1_error) __pyx_L11_unpacking_done:; } __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->exchequer->din = __pyx_t_11; __pyx_v_self->donpedro->din = __pyx_t_14; __pyx_v_self->newmelones->din = __pyx_t_15;
+2412: self.delta.vernalis_gains += self.exchequer.din + self.donpedro.din + self.newmelones.din
__Pyx_INCREF(((PyObject *)__pyx_v_self->delta)); __pyx_t_12 = __pyx_v_self->delta; __pyx_t_12->vernalis_gains = (__pyx_t_12->vernalis_gains + ((__pyx_v_self->exchequer->din + __pyx_v_self->donpedro->din) + __pyx_v_self->newmelones->din)); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
2413:
2414: ##MINIMUM FLOW AT RIO VIST GAUGE (SACRAMENTO DELTA INFLOW)
+2415: for reservoir_obj in [self.shasta, self.oroville, self.yuba, self.folsom]:
__pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_10, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_10, 3, ((PyObject *)__pyx_v_self->folsom)); __pyx_t_2 = __pyx_t_10; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2415, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_10)); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2416: reservoir_obj.find_available_storage(t, m, da, dowy)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { __pyx_t_8 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_v_da); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_4, __pyx_v_dowy); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2417: #additional releases to meet rio vista minimums shared by Sacramento Reservoirs
+2418: cvp_stored_release = self.shasta.envmin + self.folsom.envmin
__pyx_v_cvp_stored_release = (__pyx_v_self->shasta->envmin + __pyx_v_self->folsom->envmin);
+2419: swp_stored_release = self.oroville.envmin + self.yuba.envmin
__pyx_v_swp_stored_release = (__pyx_v_self->oroville->envmin + __pyx_v_self->yuba->envmin);
2420: #unstored flow at rio vista comes from tributary gains, environmental releases and sacramento river gains
+2421: self.delta.rio_gains = self.delta.gains_sac[t]
if (unlikely(__pyx_v_self->delta->gains_sac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2421, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->gains_sac, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2421, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2421, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_self->delta->rio_gains = __pyx_t_15;
+2422: for reservoir_obj in [self.shasta, self.oroville, self.yuba, self.folsom]:
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->folsom)); __pyx_t_10 = __pyx_t_2; __Pyx_INCREF(__pyx_t_10); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2422, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_10, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2423: self.delta.rio_gains += reservoir_obj.gains_to_delta + reservoir_obj.envmin
__Pyx_INCREF(((PyObject *)__pyx_v_self->delta)); __pyx_t_12 = __pyx_v_self->delta; __pyx_t_12->rio_gains = (__pyx_t_12->rio_gains + (__pyx_v_reservoir_obj->gains_to_delta + __pyx_v_reservoir_obj->envmin)); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
2424: #share rio vista requirements among Sacramento Reservoirs based on self.resevoir.availale_storage
+2425: self.shasta.din, self.oroville.din = self.delta.calc_rio_vista_rule(t, m, cvp_stored_release, swp_stored_release)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_calc_rio_vista_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_cvp_stored_release); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_swp_stored_release); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_t_5, __pyx_t_8}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_t_5, __pyx_t_8}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_3 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_m); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_t_8); __pyx_t_5 = 0; __pyx_t_8 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { PyObject* sequence = __pyx_t_10; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2425, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_8), 2) < 0) __PYX_ERR(0, 2425, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L17_unpacking_done; __pyx_L16_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2425, __pyx_L1_error) __pyx_L17_unpacking_done:; } __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->shasta->din = __pyx_t_15; __pyx_v_self->oroville->din = __pyx_t_14;
2426:
2427: ##MINIMUM DELTA OUTFLOW REQUIREMENTS
2428: #flows to delta come from vernalis, rio vista, and the 'eastside streams' (delta gains)
+2429: self.delta.total_inflow = self.delta.eastside_streams[t] + self.delta.rio_gains + self.delta.vernalis_gains
if (unlikely(__pyx_v_self->delta->eastside_streams == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2429, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->eastside_streams, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->delta->rio_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyNumber_Add(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->delta->vernalis_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2429, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_self->delta->total_inflow = __pyx_t_14;
+2430: cvp_stored_release += self.shasta.din
__pyx_v_cvp_stored_release = (__pyx_v_cvp_stored_release + __pyx_v_self->shasta->din);
+2431: swp_stored_release += self.oroville.din
__pyx_v_swp_stored_release = (__pyx_v_swp_stored_release + __pyx_v_self->oroville->din);
2432: ##additional releases for delta outflow split between cvp/swp reservoirs
+2433: self.shasta.dout, self.oroville.dout = self.delta.calc_outflow_release(t,m,dowy, cvp_stored_release, swp_stored_release)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_calc_outflow_release); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cvp_stored_release); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_swp_stored_release); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_t_2, __pyx_t_8}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_t_2, __pyx_t_8}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_1 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { PyObject* sequence = __pyx_t_10; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2433, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_8), 2) < 0) __PYX_ERR(0, 2433, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L19_unpacking_done; __pyx_L18_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2433, __pyx_L1_error) __pyx_L19_unpacking_done:; } __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->shasta->dout = __pyx_t_14; __pyx_v_self->oroville->dout = __pyx_t_15;
2434:
2435: #TOTAL AVAILABLE PROJECT STORAGE
2436: #based on snowpack based forecast (pre-processed) + current storage
+2437: cvp_available_storage = max(self.folsom.available_storage[t],0.0) + max(self.shasta.available_storage[t],0.0)
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_self->folsom->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2437, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_7) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_1 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_self->shasta->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2437, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->shasta->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_7) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_8 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_v_cvp_available_storage = __pyx_t_10;
__pyx_t_10 = 0;
+2438: swp_available_storage = max(self.oroville.available_storage[t],0.0) + max(self.yuba.available_storage[t],0.0)
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_self->oroville->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2438, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->oroville->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_7) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_8 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_self->yuba->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2438, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_7) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_2 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_swp_available_storage = __pyx_t_10;
__pyx_t_10 = 0;
+2439: cvp_flood_storage = 0.0
__pyx_v_cvp_flood_storage = 0.0;
+2440: swp_flood_storage = 0.0
__pyx_v_swp_flood_storage = 0.0;
2441: #some 'saved' storage in oroville can be used to make non-taxed releases
+2442: swp_extra = self.oroville.use_saved_storage(t, m, dowy, self.delta.forecastSCWYT)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->oroville), __pyx_n_s_use_saved_storage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2442, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2442, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { __pyx_t_3 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_GIVEREF(__pyx_v_self->delta->forecastSCWYT); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_v_self->delta->forecastSCWYT); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_swp_extra = __pyx_t_10; __pyx_t_10 = 0;
2443: #project if flood pool will be exceeded in the future & find min release rate to avoid reaching the flood pool
2444: #monthly flow projections from self.reservoir.create_flow_shapes (i.e. flood available water)
+2445: for reservoir_obj in [self.shasta, self.folsom, self.oroville, self.yuba]:
__pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_v_self->folsom)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_10, 2, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_10, 3, ((PyObject *)__pyx_v_self->yuba)); __pyx_t_2 = __pyx_t_10; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2445, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_10)); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2446: reservoir_obj.find_flow_pumping(t, m, dowy, year_index, self.days_in_month, self.dowy_eom, self.delta.forecastSCWYT, 'env')
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_flow_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_self->delta->forecastSCWYT, __pyx_n_u_env}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 8+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_self->delta->forecastSCWYT, __pyx_n_u_env}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 8+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { __pyx_t_1 = PyTuple_New(8+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_4, __pyx_v_self->dowy_eom); __Pyx_INCREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_GIVEREF(__pyx_v_self->delta->forecastSCWYT); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_4, __pyx_v_self->delta->forecastSCWYT); __Pyx_INCREF(__pyx_n_u_env); __Pyx_GIVEREF(__pyx_n_u_env); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_4, __pyx_n_u_env); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2447: reservoir_obj.days_til_full[t] = min(reservoir_obj.numdays_fillup['env'], reservoir_obj.numdays_fillup['lookahead'])
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2447, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2447, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_env); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_10, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2447, __pyx_L1_error)
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2447, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_7) {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_1 = __pyx_t_10;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_reservoir_obj->days_til_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2447, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->days_til_full, __pyx_v_t, __pyx_t_10) < 0)) __PYX_ERR(0, 2447, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2448:
2449: ###DETERMINE RELEASES REQUIRED FOR DESIRED PUMPING
2450: ###Uses gains and environmental releases to determine additional releases required for
2451: ###pumping (if desired), given inflow/export requirements, pump constraints, and CVP/SWP sharing of unstored flows
2452: #at-the-pump limits (from BiOps)
+2453: cvp_max, swp_max = self.delta.find_max_pumping(d, dowy, t, self.delta.forecastSCWYT)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_find_max_pumping); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_d, __pyx_v_dowy, __pyx_v_t, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_d, __pyx_v_dowy, __pyx_v_t, __pyx_v_self->delta->forecastSCWYT}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_3 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_GIVEREF(__pyx_v_self->delta->forecastSCWYT); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_v_self->delta->forecastSCWYT); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2453, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_10 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_1)->tp_iternext; index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_1); if (unlikely(!__pyx_t_10)) goto __pyx_L22_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L22_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2453, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L23_unpacking_done; __pyx_L22_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2453, __pyx_L1_error) __pyx_L23_unpacking_done:; } __pyx_v_cvp_max = __pyx_t_10; __pyx_t_10 = 0; __pyx_v_swp_max = __pyx_t_3; __pyx_t_3 = 0;
2454: #OMR rule limits
+2455: cvp_max, swp_max = self.delta.meet_OMR_requirement(t, m, y, dowy,cvp_max, swp_max)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_meet_OMR_requirement); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[7] = {__pyx_t_10, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_dowy, __pyx_v_cvp_max, __pyx_v_swp_max}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[7] = {__pyx_t_10, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_dowy, __pyx_v_cvp_max, __pyx_v_swp_max}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_y); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_cvp_max); __Pyx_GIVEREF(__pyx_v_cvp_max); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_v_cvp_max); __Pyx_INCREF(__pyx_v_swp_max); __Pyx_GIVEREF(__pyx_v_swp_max); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_4, __pyx_v_swp_max); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2455, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_10)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_10); if (unlikely(!__pyx_t_3)) goto __pyx_L24_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_10); if (unlikely(!__pyx_t_1)) goto __pyx_L24_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_10), 2) < 0) __PYX_ERR(0, 2455, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L25_unpacking_done; __pyx_L24_unpacking_failed:; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2455, __pyx_L1_error) __pyx_L25_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_cvp_max, __pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_swp_max, __pyx_t_1); __pyx_t_1 = 0;
2456:
+2457: proj_surplus, max_pumping = self.proj_gains(t, dowy, m, year_index)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_proj_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_10 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_4, __pyx_v_year_index); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2457, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_10 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L26_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_10 = __pyx_t_13(__pyx_t_3); if (unlikely(!__pyx_t_10)) goto __pyx_L26_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_3), 2) < 0) __PYX_ERR(0, 2457, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L27_unpacking_done; __pyx_L26_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2457, __pyx_L1_error) __pyx_L27_unpacking_done:; } __pyx_v_proj_surplus = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_max_pumping = __pyx_t_10; __pyx_t_10 = 0;
+2458: flood_release = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_flood_release = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+2459: flood_volume = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_flood_volume = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
2460: ##Releases in anticipation of flood pool encroachment (not required by flood rules)
+2461: flood_release['swp'] = self.oroville.min_daily_uncontrolled
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->oroville->min_daily_uncontrolled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_flood_release, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 2461, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2462: flood_release['cvp'] = self.shasta.min_daily_uncontrolled
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->shasta->min_daily_uncontrolled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_flood_release, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 2462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2463: flood_volume['swp'] = self.oroville.uncontrolled_available
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->oroville->uncontrolled_available); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_flood_volume, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 2463, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2464: flood_volume['cvp'] = self.shasta.uncontrolled_available
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->shasta->uncontrolled_available); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_flood_volume, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 2464, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2465: swp_over_dead_pool = self.oroville.find_emergency_supply(t, m, dowy)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->oroville), __pyx_n_s_find_emergency_supply); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2465, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2465, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_dowy); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_swp_over_dead_pool = __pyx_t_2; __pyx_t_2 = 0;
+2466: cvp_over_dead_pool = 0.0
__pyx_v_cvp_over_dead_pool = 0.0;
2467: ##Distribute 'available storage' seasonally to maximize pumping under E/I ratio requirements (i.e., pump when E/I ratio is highest)
+2468: cvp_max_final, swp_max_final = self.delta.find_release(t, m, y, year_index, dowy, self.days_in_month, self.dowy_eom, cvp_max, swp_max, cvp_available_storage, swp_available_storage, cvp_release, swp_release, proj_surplus, max_pumping)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_find_release); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[16] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_dowy, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_v_cvp_release, __pyx_v_swp_release, __pyx_v_proj_surplus, __pyx_v_max_pumping}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 15+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[16] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_dowy, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_v_cvp_release, __pyx_v_swp_release, __pyx_v_proj_surplus, __pyx_v_max_pumping}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_4, 15+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(15+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_y); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_4, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_4, __pyx_v_self->dowy_eom); __Pyx_INCREF(__pyx_v_cvp_max); __Pyx_GIVEREF(__pyx_v_cvp_max); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_4, __pyx_v_cvp_max); __Pyx_INCREF(__pyx_v_swp_max); __Pyx_GIVEREF(__pyx_v_swp_max); PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_4, __pyx_v_swp_max); __Pyx_INCREF(__pyx_v_cvp_available_storage); __Pyx_GIVEREF(__pyx_v_cvp_available_storage); PyTuple_SET_ITEM(__pyx_t_1, 9+__pyx_t_4, __pyx_v_cvp_available_storage); __Pyx_INCREF(__pyx_v_swp_available_storage); __Pyx_GIVEREF(__pyx_v_swp_available_storage); PyTuple_SET_ITEM(__pyx_t_1, 10+__pyx_t_4, __pyx_v_swp_available_storage); __Pyx_INCREF(__pyx_v_cvp_release); __Pyx_GIVEREF(__pyx_v_cvp_release); PyTuple_SET_ITEM(__pyx_t_1, 11+__pyx_t_4, __pyx_v_cvp_release); __Pyx_INCREF(__pyx_v_swp_release); __Pyx_GIVEREF(__pyx_v_swp_release); PyTuple_SET_ITEM(__pyx_t_1, 12+__pyx_t_4, __pyx_v_swp_release); __Pyx_INCREF(__pyx_v_proj_surplus); __Pyx_GIVEREF(__pyx_v_proj_surplus); PyTuple_SET_ITEM(__pyx_t_1, 13+__pyx_t_4, __pyx_v_proj_surplus); __Pyx_INCREF(__pyx_v_max_pumping); __Pyx_GIVEREF(__pyx_v_max_pumping); PyTuple_SET_ITEM(__pyx_t_1, 14+__pyx_t_4, __pyx_v_max_pumping); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2468, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_10 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_3); if (unlikely(!__pyx_t_10)) goto __pyx_L28_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L28_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_3), 2) < 0) __PYX_ERR(0, 2468, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L29_unpacking_done; __pyx_L28_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2468, __pyx_L1_error) __pyx_L29_unpacking_done:; } __pyx_v_cvp_max_final = __pyx_t_10; __pyx_t_10 = 0; __pyx_v_swp_max_final = __pyx_t_1; __pyx_t_1 = 0;
2469:
2470: #if pumping is turned 'off' (b/c SL conditions), calculate how much forgone pumping to take away from SL carryover storage (southern model input)
+2471: cvp_forgone = max(cvp_max - cvp_pump, 0.0)
__pyx_t_15 = 0.0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_cvp_max, __pyx_v_cvp_pump); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyObject_RichCompare(__pyx_t_10, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { __pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cvp_forgone = __pyx_t_2; __pyx_t_2 = 0;
+2472: swp_forgone = max(swp_max - swp_pump, 0.0)
__pyx_t_15 = 0.0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_swp_max, __pyx_v_swp_pump); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2472, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2472, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_7) { __pyx_t_10 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = __pyx_t_10; __pyx_t_10 = 0; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_swp_forgone = __pyx_t_2; __pyx_t_2 = 0;
2473: #swp_forgone, swp_max_final = self.delta.hypothetical_pumping(t, m, swp_max, swp_max_final, swp_release2, 0.45)
2474: #find additional releases to pump at the desired levels
+2475: cvp_max = min(cvp_max, cvp_pump)#don't release 'tax free' pumping in excess of storage capacity at SL
__Pyx_INCREF(__pyx_v_cvp_pump); __pyx_t_2 = __pyx_v_cvp_pump; __Pyx_INCREF(__pyx_v_cvp_max); __pyx_t_1 = __pyx_v_cvp_max; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2475, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2475, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_10; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_cvp_max, __pyx_t_2); __pyx_t_2 = 0;
+2476: swp_max = min(swp_max, swp_pump)#don't release 'tax free' pumping in excess of storage capacity at SL
__Pyx_INCREF(__pyx_v_swp_pump); __pyx_t_2 = __pyx_v_swp_pump; __Pyx_INCREF(__pyx_v_swp_max); __pyx_t_10 = __pyx_v_swp_max; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2476, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2476, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_10); __pyx_t_1 = __pyx_t_10; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_swp_max, __pyx_t_2); __pyx_t_2 = 0;
+2477: cvp_max_final = min(cvp_max_final, cvp_pump)
__Pyx_INCREF(__pyx_v_cvp_pump); __pyx_t_2 = __pyx_v_cvp_pump; __Pyx_INCREF(__pyx_v_cvp_max_final); __pyx_t_1 = __pyx_v_cvp_max_final; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2477, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2477, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_10; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_cvp_max_final, __pyx_t_2); __pyx_t_2 = 0;
+2478: swp_max_final = min(swp_max_final, swp_pump)
__Pyx_INCREF(__pyx_v_swp_pump); __pyx_t_2 = __pyx_v_swp_pump; __Pyx_INCREF(__pyx_v_swp_max_final); __pyx_t_10 = __pyx_v_swp_max_final; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2478, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_10); __pyx_t_1 = __pyx_t_10; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_swp_max_final, __pyx_t_2); __pyx_t_2 = 0;
2479: #calculates releases to pump at desired levels (either cvp/swp_max or non-taxed levels, based on min outflow & i/e rules)
+2480: swp_reduced, cvp_reduced = self.delta.calc_flow_bounds(t, m, y, year_index, d, dowy, self.dowy_eom, cvp_max_final, swp_max_final, cvp_max, swp_max, cvp_release2, swp_release2, cvp_available_storage, swp_available_storage, flood_release['cvp'], flood_release['swp'], swp_over_dead_pool, cvp_over_dead_pool, flood_volume['swp'], flood_volume['cvp'], min(self.oroville.numdays_fillup['env'],self.oroville.numdays_fillup['lookahead']), min(self.shasta.numdays_fillup['env'],self.shasta.numdays_fillup['lookahead']) )
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_calc_flow_bounds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_flood_release, __pyx_n_u_cvp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_flood_release, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_cvp_over_dead_pool); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_flood_volume, __pyx_n_u_swp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_flood_volume, __pyx_n_u_cvp); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_self->oroville->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2480, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->oroville->numdays_fillup, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_self->oroville->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2480, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->oroville->numdays_fillup, __pyx_n_u_env); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_20 = PyObject_RichCompare(__pyx_t_17, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2480, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_17); __pyx_t_19 = __pyx_t_17; } else { __Pyx_INCREF(__pyx_t_18); __pyx_t_19 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(__pyx_v_self->shasta->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2480, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->shasta->numdays_fillup, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_self->shasta->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2480, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->shasta->numdays_fillup, __pyx_n_u_env); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_21 = PyObject_RichCompare(__pyx_t_17, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2480, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_17); __pyx_t_20 = __pyx_t_17; } else { __Pyx_INCREF(__pyx_t_18); __pyx_t_20 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[24] = {__pyx_t_17, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_d, __pyx_v_dowy, __pyx_v_self->dowy_eom, __pyx_v_cvp_max_final, __pyx_v_swp_max_final, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_release2, __pyx_v_swp_release2, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_t_10, __pyx_t_3, __pyx_v_swp_over_dead_pool, __pyx_t_8, __pyx_t_5, __pyx_t_16, __pyx_t_19, __pyx_t_20}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 23+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[24] = {__pyx_t_17, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_d, __pyx_v_dowy, __pyx_v_self->dowy_eom, __pyx_v_cvp_max_final, __pyx_v_swp_max_final, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_release2, __pyx_v_swp_release2, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_t_10, __pyx_t_3, __pyx_v_swp_over_dead_pool, __pyx_t_8, __pyx_t_5, __pyx_t_16, __pyx_t_19, __pyx_t_20}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 23+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_18 = PyTuple_New(23+__pyx_t_4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_4, __pyx_v_y); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_4, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_4, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_18, 6+__pyx_t_4, __pyx_v_self->dowy_eom); __Pyx_INCREF(__pyx_v_cvp_max_final); __Pyx_GIVEREF(__pyx_v_cvp_max_final); PyTuple_SET_ITEM(__pyx_t_18, 7+__pyx_t_4, __pyx_v_cvp_max_final); __Pyx_INCREF(__pyx_v_swp_max_final); __Pyx_GIVEREF(__pyx_v_swp_max_final); PyTuple_SET_ITEM(__pyx_t_18, 8+__pyx_t_4, __pyx_v_swp_max_final); __Pyx_INCREF(__pyx_v_cvp_max); __Pyx_GIVEREF(__pyx_v_cvp_max); PyTuple_SET_ITEM(__pyx_t_18, 9+__pyx_t_4, __pyx_v_cvp_max); __Pyx_INCREF(__pyx_v_swp_max); __Pyx_GIVEREF(__pyx_v_swp_max); PyTuple_SET_ITEM(__pyx_t_18, 10+__pyx_t_4, __pyx_v_swp_max); __Pyx_INCREF(__pyx_v_cvp_release2); __Pyx_GIVEREF(__pyx_v_cvp_release2); PyTuple_SET_ITEM(__pyx_t_18, 11+__pyx_t_4, __pyx_v_cvp_release2); __Pyx_INCREF(__pyx_v_swp_release2); __Pyx_GIVEREF(__pyx_v_swp_release2); PyTuple_SET_ITEM(__pyx_t_18, 12+__pyx_t_4, __pyx_v_swp_release2); __Pyx_INCREF(__pyx_v_cvp_available_storage); __Pyx_GIVEREF(__pyx_v_cvp_available_storage); PyTuple_SET_ITEM(__pyx_t_18, 13+__pyx_t_4, __pyx_v_cvp_available_storage); __Pyx_INCREF(__pyx_v_swp_available_storage); __Pyx_GIVEREF(__pyx_v_swp_available_storage); PyTuple_SET_ITEM(__pyx_t_18, 14+__pyx_t_4, __pyx_v_swp_available_storage); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_18, 15+__pyx_t_4, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_18, 16+__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_v_swp_over_dead_pool); __Pyx_GIVEREF(__pyx_v_swp_over_dead_pool); PyTuple_SET_ITEM(__pyx_t_18, 17+__pyx_t_4, __pyx_v_swp_over_dead_pool); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_18, 18+__pyx_t_4, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_18, 19+__pyx_t_4, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_18, 20+__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_18, 21+__pyx_t_4, __pyx_t_19); __Pyx_INCREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_18, 22+__pyx_t_4, __pyx_t_20); __pyx_t_10 = 0; __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_5 = 0; __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_18, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2480, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_18 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_18 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_18); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_20)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_20); if (unlikely(!__pyx_t_1)) goto __pyx_L30_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_18 = __pyx_t_13(__pyx_t_20); if (unlikely(!__pyx_t_18)) goto __pyx_L30_unpacking_failed; __Pyx_GOTREF(__pyx_t_18); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_20), 2) < 0) __PYX_ERR(0, 2480, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; goto __pyx_L31_unpacking_done; __pyx_L30_unpacking_failed:; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2480, __pyx_L1_error) __pyx_L31_unpacking_done:; } __pyx_v_swp_reduced = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_cvp_reduced = __pyx_t_18; __pyx_t_18 = 0;
+2481: cvp_forgone = max(cvp_forgone, cvp_reduced)
__Pyx_INCREF(__pyx_v_cvp_reduced); __pyx_t_2 = __pyx_v_cvp_reduced; __Pyx_INCREF(__pyx_v_cvp_forgone); __pyx_t_18 = __pyx_v_cvp_forgone; __pyx_t_20 = PyObject_RichCompare(__pyx_t_2, __pyx_t_18, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2481, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_18); __pyx_t_1 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_cvp_forgone, __pyx_t_2); __pyx_t_2 = 0;
+2482: swp_forgone = max(cvp_forgone, cvp_reduced)
__Pyx_INCREF(__pyx_v_cvp_reduced); __pyx_t_2 = __pyx_v_cvp_reduced; __Pyx_INCREF(__pyx_v_cvp_forgone); __pyx_t_1 = __pyx_v_cvp_forgone; __pyx_t_20 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2482, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (__pyx_t_7) { __Pyx_INCREF(__pyx_t_2); __pyx_t_18 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_18 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_18; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF_SET(__pyx_v_swp_forgone, __pyx_t_2); __pyx_t_2 = 0;
2483:
2484: #distribute releases for export between Sacramento River Reservoirs
+2485: self.shasta.sodd, self.folsom.sodd = self.delta.distribute_export_releases(t, cvp_max, self.delta.sodd_cvp[t], self.shasta.flood_storage[t], self.folsom.flood_storage[t], self.shasta.available_storage[t], self.folsom.available_storage[t])
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_distribute_export_releases); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_self->delta->sodd_cvp == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2485, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->sodd_cvp, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->shasta->flood_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2485, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_self->shasta->flood_storage, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(__pyx_v_self->folsom->flood_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2485, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->flood_storage, __pyx_v_t); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(__pyx_v_self->shasta->available_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2485, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_self->shasta->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_self->folsom->available_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2485, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_t, __pyx_v_cvp_max, __pyx_t_1, __pyx_t_20, __pyx_t_19, __pyx_t_16, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_t, __pyx_v_cvp_max, __pyx_t_1, __pyx_t_20, __pyx_t_19, __pyx_t_16, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_3 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_cvp_max); __Pyx_GIVEREF(__pyx_v_cvp_max); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_cvp_max); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_4, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_4, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_4, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_16 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2485, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_18 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_18 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_18 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_18 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_18)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_18); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2485, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L33_unpacking_done; __pyx_L32_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2485, __pyx_L1_error) __pyx_L33_unpacking_done:; } __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->shasta->sodd = __pyx_t_15; __pyx_v_self->folsom->sodd = __pyx_t_14;
+2486: self.oroville.sodd, self.yuba.sodd = self.delta.distribute_export_releases(t, swp_max, self.delta.sodd_swp[t], self.oroville.flood_storage[t], self.yuba.flood_storage[t], self.oroville.available_storage[t], self.yuba.available_storage[t])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_distribute_export_releases); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->delta->sodd_swp == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2486, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->sodd_swp, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_self->oroville->flood_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2486, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_self->oroville->flood_storage, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_self->yuba->flood_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2486, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->flood_storage, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_self->oroville->available_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2486, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_v_self->oroville->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(__pyx_v_self->yuba->available_storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2486, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_t, __pyx_v_swp_max, __pyx_t_18, __pyx_t_5, __pyx_t_16, __pyx_t_19, __pyx_t_20}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_t, __pyx_v_swp_max, __pyx_t_18, __pyx_t_5, __pyx_t_16, __pyx_t_19, __pyx_t_20}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_8 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_swp_max); __Pyx_GIVEREF(__pyx_v_swp_max); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_swp_max); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_4, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_4, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_4, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_4, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_5 = 0; __pyx_t_16 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2486, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_20)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_20); if (unlikely(!__pyx_t_3)) goto __pyx_L34_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_8 = __pyx_t_13(__pyx_t_20); if (unlikely(!__pyx_t_8)) goto __pyx_L34_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_20), 2) < 0) __PYX_ERR(0, 2486, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; goto __pyx_L35_unpacking_done; __pyx_L34_unpacking_failed:; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2486, __pyx_L1_error) __pyx_L35_unpacking_done:; } __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2486, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_self->oroville->sodd = __pyx_t_14; __pyx_v_self->yuba->sodd = __pyx_t_15;
+2487: if self.shasta.sodd > self.shasta.S[t] - self.shasta.dead_pool:
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->shasta->sodd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->shasta->S == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2487, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->shasta->S, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->shasta->dead_pool); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PyNumber_Subtract(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_20, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { /* … */ }
+2488: self.shasta.sodd = 0.0
__pyx_v_self->shasta->sodd = 0.0;
+2489: if self.oroville.sodd > self.oroville.S[t] - self.oroville.dead_pool:
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->oroville->sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->oroville->S == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2489, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_self->oroville->S, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->oroville->dead_pool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyNumber_Subtract(__pyx_t_20, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_7) { /* … */ }
+2490: self.oroville.sodd = 0.0
__pyx_v_self->oroville->sodd = 0.0;
2491:
2492: ##Releases for export from reservoirs with flood control encroachment
+2493: if self.shasta.sodd < self.shasta.min_daily_uncontrolled and self.folsom.sodd > self.folsom.min_daily_uncontrolled:
__pyx_t_6 = ((__pyx_v_self->shasta->sodd < __pyx_v_self->shasta->min_daily_uncontrolled) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_7 = __pyx_t_6;
goto __pyx_L39_bool_binop_done;
}
__pyx_t_6 = ((__pyx_v_self->folsom->sodd > __pyx_v_self->folsom->min_daily_uncontrolled) != 0);
__pyx_t_7 = __pyx_t_6;
__pyx_L39_bool_binop_done:;
if (__pyx_t_7) {
/* … */
goto __pyx_L38;
}
+2494: release_switch = min(self.folsom.sodd - self.folsom.min_daily_uncontrolled, self.shasta.min_daily_uncontrolled - self.shasta.sodd)
__pyx_t_15 = (__pyx_v_self->shasta->min_daily_uncontrolled - __pyx_v_self->shasta->sodd);
__pyx_t_14 = (__pyx_v_self->folsom->sodd - __pyx_v_self->folsom->min_daily_uncontrolled);
if (((__pyx_t_15 < __pyx_t_14) != 0)) {
__pyx_t_11 = __pyx_t_15;
} else {
__pyx_t_11 = __pyx_t_14;
}
__pyx_v_release_switch = __pyx_t_11;
+2495: self.shasta.sodd += release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __pyx_t_22 = __pyx_v_self->shasta; __pyx_t_22->sodd = (__pyx_t_22->sodd + __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2496: self.folsom.sodd -= release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __pyx_t_22 = __pyx_v_self->folsom; __pyx_t_22->sodd = (__pyx_t_22->sodd - __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2497: elif self.shasta.sodd > self.shasta.min_daily_uncontrolled and self.folsom.sodd < self.folsom.min_daily_uncontrolled:
__pyx_t_6 = ((__pyx_v_self->shasta->sodd > __pyx_v_self->shasta->min_daily_uncontrolled) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_7 = __pyx_t_6;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_6 = ((__pyx_v_self->folsom->sodd < __pyx_v_self->folsom->min_daily_uncontrolled) != 0);
__pyx_t_7 = __pyx_t_6;
__pyx_L41_bool_binop_done:;
if (__pyx_t_7) {
/* … */
}
__pyx_L38:;
+2498: release_switch = min(self.shasta.sodd - self.shasta.min_daily_uncontrolled, self.folsom.min_daily_uncontrolled - self.folsom.sodd)
__pyx_t_11 = (__pyx_v_self->folsom->min_daily_uncontrolled - __pyx_v_self->folsom->sodd);
__pyx_t_15 = (__pyx_v_self->shasta->sodd - __pyx_v_self->shasta->min_daily_uncontrolled);
if (((__pyx_t_11 < __pyx_t_15) != 0)) {
__pyx_t_14 = __pyx_t_11;
} else {
__pyx_t_14 = __pyx_t_15;
}
__pyx_v_release_switch = __pyx_t_14;
+2499: self.shasta.sodd -= release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __pyx_t_22 = __pyx_v_self->shasta; __pyx_t_22->sodd = (__pyx_t_22->sodd - __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2500: self.folsom.sodd += release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __pyx_t_22 = __pyx_v_self->folsom; __pyx_t_22->sodd = (__pyx_t_22->sodd + __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
2501:
+2502: if self.oroville.sodd < self.oroville.min_daily_uncontrolled and self.yuba.sodd > self.yuba.min_daily_uncontrolled:
__pyx_t_6 = ((__pyx_v_self->oroville->sodd < __pyx_v_self->oroville->min_daily_uncontrolled) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_7 = __pyx_t_6;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_6 = ((__pyx_v_self->yuba->sodd > __pyx_v_self->yuba->min_daily_uncontrolled) != 0);
__pyx_t_7 = __pyx_t_6;
__pyx_L44_bool_binop_done:;
if (__pyx_t_7) {
/* … */
goto __pyx_L43;
}
+2503: release_switch = min(self.yuba.sodd - self.yuba.min_daily_uncontrolled, self.oroville.min_daily_uncontrolled - self.oroville.sodd)
__pyx_t_14 = (__pyx_v_self->oroville->min_daily_uncontrolled - __pyx_v_self->oroville->sodd);
__pyx_t_11 = (__pyx_v_self->yuba->sodd - __pyx_v_self->yuba->min_daily_uncontrolled);
if (((__pyx_t_14 < __pyx_t_11) != 0)) {
__pyx_t_15 = __pyx_t_14;
} else {
__pyx_t_15 = __pyx_t_11;
}
__pyx_v_release_switch = __pyx_t_15;
+2504: self.oroville.sodd += release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __pyx_t_22 = __pyx_v_self->oroville; __pyx_t_22->sodd = (__pyx_t_22->sodd + __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2505: self.yuba.sodd -= release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __pyx_t_22 = __pyx_v_self->yuba; __pyx_t_22->sodd = (__pyx_t_22->sodd - __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2506: elif self.oroville.sodd > self.oroville.min_daily_uncontrolled and self.yuba.sodd < self.yuba.min_daily_uncontrolled:
__pyx_t_6 = ((__pyx_v_self->oroville->sodd > __pyx_v_self->oroville->min_daily_uncontrolled) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_7 = __pyx_t_6;
goto __pyx_L46_bool_binop_done;
}
__pyx_t_6 = ((__pyx_v_self->yuba->sodd < __pyx_v_self->yuba->min_daily_uncontrolled) != 0);
__pyx_t_7 = __pyx_t_6;
__pyx_L46_bool_binop_done:;
if (__pyx_t_7) {
/* … */
}
__pyx_L43:;
+2507: release_switch = min(self.oroville.sodd - self.oroville.min_daily_uncontrolled, self.yuba.min_daily_uncontrolled - self.yuba.sodd)
__pyx_t_15 = (__pyx_v_self->yuba->min_daily_uncontrolled - __pyx_v_self->yuba->sodd);
__pyx_t_14 = (__pyx_v_self->oroville->sodd - __pyx_v_self->oroville->min_daily_uncontrolled);
if (((__pyx_t_15 < __pyx_t_14) != 0)) {
__pyx_t_11 = __pyx_t_15;
} else {
__pyx_t_11 = __pyx_t_14;
}
__pyx_v_release_switch = __pyx_t_11;
+2508: self.yuba.sodd += release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __pyx_t_22 = __pyx_v_self->yuba; __pyx_t_22->sodd = (__pyx_t_22->sodd + __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+2509: self.oroville.sodd -= release_switch
__Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __pyx_t_22 = __pyx_v_self->oroville; __pyx_t_22->sodd = (__pyx_t_22->sodd - __pyx_v_release_switch); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
2510:
2511:
2512: ##SAN JOAQUIN RESERVOIR OPERATIONS
2513: ##lower SJ basins - no 'release for exports' but used to meet delta targets @ vernalis
2514: ##Water Balance
+2515: for reservoir_obj in [self.newmelones, self.donpedro, self.exchequer]:
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->exchequer)); __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_9 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2515, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2516: reservoir_obj.step(t)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_20, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_t); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2517: #forced spills also go to delta
+2518: self.delta.total_inflow += reservoir_obj.force_spill
__Pyx_INCREF(((PyObject *)__pyx_v_self->delta)); __pyx_t_12 = __pyx_v_self->delta; __pyx_t_12->total_inflow = (__pyx_t_12->total_inflow + __pyx_v_reservoir_obj->force_spill); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
2519:
2520:
2521: #SACRAMENTO RESERVOIR OPERATIONS
2522: ##Water balance at each Northern Reservoir
+2523: self.shasta.rights_call(self.delta.ccc[t]*-1.0,1)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->shasta), __pyx_n_s_rights_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->delta->ccc == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2523, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->ccc, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PyNumber_Multiply(__pyx_t_3, __pyx_float_neg_1_0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_20, __pyx_int_1}; __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_20, __pyx_int_1}; __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_19 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_4, __pyx_t_20); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_4, __pyx_int_1); __pyx_t_20 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2524: self.oroville.rights_call(self.delta.barkerslough[t]*-1.0,1)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->oroville), __pyx_n_s_rights_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->delta->barkerslough == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2524, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->barkerslough, __pyx_v_t); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = PyNumber_Multiply(__pyx_t_19, __pyx_float_neg_1_0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_20, __pyx_int_1}; __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_20, __pyx_int_1}; __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_t_20); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_int_1); __pyx_t_20 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2525: for reservoir_obj in [self.shasta, self.oroville, self.yuba, self.folsom]:
__pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_8, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_8, 3, ((PyObject *)__pyx_v_self->folsom)); __pyx_t_2 = __pyx_t_8; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2525, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_8)); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2526: reservoir_obj.step(t)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_8 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_20, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_t); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
2527: #forced spills also go to delta
+2528: self.delta.total_inflow += reservoir_obj.force_spill
__Pyx_INCREF(((PyObject *)__pyx_v_self->delta)); __pyx_t_12 = __pyx_v_self->delta; __pyx_t_12->total_inflow = (__pyx_t_12->total_inflow + __pyx_v_reservoir_obj->force_spill); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
2529:
2530:
2531: ###DELTA OPERATIONS
2532: ##Given delta inflows (from gains and reservoir releases), find pumping
2533: #cvp_stored_flow = self.shasta.R_to_delta[t] + self.folsom.R_to_delta[t]
2534: #swp_stored_flow = self.oroville.R_to_delta[t] + self.yuba.R_to_delta[t]
+2535: cvp_stored_flow = self.shasta.sodd + self.folsom.sodd
__pyx_v_cvp_stored_flow = (__pyx_v_self->shasta->sodd + __pyx_v_self->folsom->sodd);
+2536: swp_stored_flow = self.oroville.sodd + self.yuba.sodd
__pyx_v_swp_stored_flow = (__pyx_v_self->oroville->sodd + __pyx_v_self->yuba->sodd);
2537:
2538: ##route all water through delta rules to determine pumping
+2539: self.delta.step(t, d, da, m, y, wateryear, dowy, cvp_stored_flow, swp_stored_flow, swp_pump, cvp_pump, swp_available_storage, cvp_available_storage)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->delta), __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cvp_stored_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PyFloat_FromDouble(__pyx_v_swp_stored_flow); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[14] = {__pyx_t_19, __pyx_v_t, __pyx_v_d, __pyx_v_da, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear, __pyx_v_dowy, __pyx_t_3, __pyx_t_20, __pyx_v_swp_pump, __pyx_v_cvp_pump, __pyx_v_swp_available_storage, __pyx_v_cvp_available_storage}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 13+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[14] = {__pyx_t_19, __pyx_v_t, __pyx_v_d, __pyx_v_da, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear, __pyx_v_dowy, __pyx_t_3, __pyx_t_20, __pyx_v_swp_pump, __pyx_v_cvp_pump, __pyx_v_swp_available_storage, __pyx_v_cvp_available_storage}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 13+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_16 = PyTuple_New(13+__pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_4, __pyx_v_t); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_4, __pyx_v_d); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_4, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_4, __pyx_v_m); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_4, __pyx_v_y); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_16, 5+__pyx_t_4, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_16, 6+__pyx_t_4, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_16, 7+__pyx_t_4, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_16, 8+__pyx_t_4, __pyx_t_20); __Pyx_INCREF(__pyx_v_swp_pump); __Pyx_GIVEREF(__pyx_v_swp_pump); PyTuple_SET_ITEM(__pyx_t_16, 9+__pyx_t_4, __pyx_v_swp_pump); __Pyx_INCREF(__pyx_v_cvp_pump); __Pyx_GIVEREF(__pyx_v_cvp_pump); PyTuple_SET_ITEM(__pyx_t_16, 10+__pyx_t_4, __pyx_v_cvp_pump); __Pyx_INCREF(__pyx_v_swp_available_storage); __Pyx_GIVEREF(__pyx_v_swp_available_storage); PyTuple_SET_ITEM(__pyx_t_16, 11+__pyx_t_4, __pyx_v_swp_available_storage); __Pyx_INCREF(__pyx_v_cvp_available_storage); __Pyx_GIVEREF(__pyx_v_cvp_available_storage); PyTuple_SET_ITEM(__pyx_t_16, 12+__pyx_t_4, __pyx_v_cvp_available_storage); __pyx_t_3 = 0; __pyx_t_20 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2540:
2541:
+2542: return self.delta.HRO_pump[t], self.delta.TRP_pump[t], self.delta.swp_allocation[t], self.delta.cvp_allocation[t], proj_surplus, max_pumping, swp_forgone, cvp_forgone, swp_flood_storage, cvp_flood_storage, swp_available_storage, cvp_available_storage, flood_release, flood_volume
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->delta->HRO_pump == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2542, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->HRO_pump, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->delta->TRP_pump == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2542, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->TRP_pump, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_self->delta->swp_allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2542, __pyx_L1_error) } __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->swp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(__pyx_v_self->delta->cvp_allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2542, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->cvp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_swp_flood_storage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = PyFloat_FromDouble(__pyx_v_cvp_flood_storage); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_5 = PyTuple_New(14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_20); __Pyx_INCREF(__pyx_v_proj_surplus); __Pyx_GIVEREF(__pyx_v_proj_surplus); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_proj_surplus); __Pyx_INCREF(__pyx_v_max_pumping); __Pyx_GIVEREF(__pyx_v_max_pumping); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_v_max_pumping); __Pyx_INCREF(__pyx_v_swp_forgone); __Pyx_GIVEREF(__pyx_v_swp_forgone); PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_v_swp_forgone); __Pyx_INCREF(__pyx_v_cvp_forgone); __Pyx_GIVEREF(__pyx_v_cvp_forgone); PyTuple_SET_ITEM(__pyx_t_5, 7, __pyx_v_cvp_forgone); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_5, 9, __pyx_t_19); __Pyx_INCREF(__pyx_v_swp_available_storage); __Pyx_GIVEREF(__pyx_v_swp_available_storage); PyTuple_SET_ITEM(__pyx_t_5, 10, __pyx_v_swp_available_storage); __Pyx_INCREF(__pyx_v_cvp_available_storage); __Pyx_GIVEREF(__pyx_v_cvp_available_storage); PyTuple_SET_ITEM(__pyx_t_5, 11, __pyx_v_cvp_available_storage); __Pyx_INCREF(__pyx_v_flood_release); __Pyx_GIVEREF(__pyx_v_flood_release); PyTuple_SET_ITEM(__pyx_t_5, 12, __pyx_v_flood_release); __Pyx_INCREF(__pyx_v_flood_volume); __Pyx_GIVEREF(__pyx_v_flood_volume); PyTuple_SET_ITEM(__pyx_t_5, 13, __pyx_v_flood_volume); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_16 = 0; __pyx_t_20 = 0; __pyx_t_3 = 0; __pyx_t_19 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
2543:
2544:
2545:
+2546: def simulate_south(self, t, hro_pump, trp_pump, swp_alloc, cvp_alloc, proj_surplus, max_pumping, swp_forgone, cvp_forgone, swp_AF, cvp_AF, swp_AS, cvp_AS, wyt, wytSC, max_tax_free, flood_release, flood_volume):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_51simulate_south(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_51simulate_south(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_hro_pump = 0;
PyObject *__pyx_v_trp_pump = 0;
PyObject *__pyx_v_swp_alloc = 0;
PyObject *__pyx_v_cvp_alloc = 0;
PyObject *__pyx_v_proj_surplus = 0;
PyObject *__pyx_v_max_pumping = 0;
PyObject *__pyx_v_swp_forgone = 0;
PyObject *__pyx_v_cvp_forgone = 0;
PyObject *__pyx_v_swp_AF = 0;
PyObject *__pyx_v_cvp_AF = 0;
PyObject *__pyx_v_swp_AS = 0;
PyObject *__pyx_v_cvp_AS = 0;
PyObject *__pyx_v_wyt = 0;
PyObject *__pyx_v_wytSC = 0;
CYTHON_UNUSED PyObject *__pyx_v_max_tax_free = 0;
PyObject *__pyx_v_flood_release = 0;
PyObject *__pyx_v_flood_volume = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("simulate_south (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_hro_pump,&__pyx_n_s_trp_pump,&__pyx_n_s_swp_alloc,&__pyx_n_s_cvp_alloc,&__pyx_n_s_proj_surplus,&__pyx_n_s_max_pumping,&__pyx_n_s_swp_forgone,&__pyx_n_s_cvp_forgone,&__pyx_n_s_swp_AF,&__pyx_n_s_cvp_AF,&__pyx_n_s_swp_AS,&__pyx_n_s_cvp_AS,&__pyx_n_s_wyt,&__pyx_n_s_wytSC,&__pyx_n_s_max_tax_free,&__pyx_n_s_flood_release,&__pyx_n_s_flood_volume,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hro_pump)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 1); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trp_pump)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 2); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_alloc)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 3); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_alloc)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 4); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proj_surplus)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 5); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_pumping)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 6); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_forgone)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 7); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_forgone)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 8); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AF)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 9); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AF)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 10); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AS)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 11); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AS)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 12); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 13); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wytSC)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 14); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 15:
if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 15); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 16:
if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_release)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 16); __PYX_ERR(0, 2546, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 17:
if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_volume)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, 17); __PYX_ERR(0, 2546, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "simulate_south") < 0)) __PYX_ERR(0, 2546, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
}
__pyx_v_t = values[0];
__pyx_v_hro_pump = values[1];
__pyx_v_trp_pump = values[2];
__pyx_v_swp_alloc = values[3];
__pyx_v_cvp_alloc = values[4];
__pyx_v_proj_surplus = values[5];
__pyx_v_max_pumping = values[6];
__pyx_v_swp_forgone = values[7];
__pyx_v_cvp_forgone = values[8];
__pyx_v_swp_AF = values[9];
__pyx_v_cvp_AF = values[10];
__pyx_v_swp_AS = values[11];
__pyx_v_cvp_AS = values[12];
__pyx_v_wyt = values[13];
__pyx_v_wytSC = values[14];
__pyx_v_max_tax_free = values[15];
__pyx_v_flood_release = values[16];
__pyx_v_flood_volume = values[17];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("simulate_south", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2546, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.simulate_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_50simulate_south(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_hro_pump, __pyx_v_trp_pump, __pyx_v_swp_alloc, __pyx_v_cvp_alloc, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_forgone, __pyx_v_cvp_forgone, __pyx_v_swp_AF, __pyx_v_cvp_AF, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_wyt, __pyx_v_wytSC, __pyx_v_max_tax_free, __pyx_v_flood_release, __pyx_v_flood_volume);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_50simulate_south(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_hro_pump, PyObject *__pyx_v_trp_pump, PyObject *__pyx_v_swp_alloc, PyObject *__pyx_v_cvp_alloc, PyObject *__pyx_v_proj_surplus, PyObject *__pyx_v_max_pumping, PyObject *__pyx_v_swp_forgone, PyObject *__pyx_v_cvp_forgone, PyObject *__pyx_v_swp_AF, PyObject *__pyx_v_cvp_AF, PyObject *__pyx_v_swp_AS, PyObject *__pyx_v_cvp_AS, PyObject *__pyx_v_wyt, PyObject *__pyx_v_wytSC, CYTHON_UNUSED PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_flood_release, PyObject *__pyx_v_flood_volume) {
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj2 = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_total_canal_demand = 0;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_da = NULL;
PyObject *__pyx_v_dowy = NULL;
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_y = NULL;
PyObject *__pyx_v_wateryear = NULL;
PyObject *__pyx_v_year_index = NULL;
PyObject *__pyx_v_m1 = NULL;
PyObject *__pyx_v_watershed_reservoir_list = NULL;
CYTHON_UNUSED PyObject *__pyx_v_extra_s = NULL;
CYTHON_UNUSED PyObject *__pyx_v_extra_f = NULL;
CYTHON_UNUSED double __pyx_v_total_water_base;
PyObject *__pyx_v_land_constraint = NULL;
PyObject *__pyx_v_crop = NULL;
PyObject *__pyx_v_water_constraint_by_source = NULL;
PyObject *__pyx_v_water_available = NULL;
PyObject *__pyx_v_source = NULL;
PyObject *__pyx_v_contracts_from_source = NULL;
PyObject *__pyx_v_source_contracts = NULL;
Py_ssize_t __pyx_v_i;
PyObject *__pyx_v_x0 = NULL;
PyObject *__pyx_v_allocation_change = NULL;
PyObject *__pyx_v_expected_pumping = NULL;
PyObject *__pyx_v_swp_release = NULL;
PyObject *__pyx_v_swp_release2 = NULL;
PyObject *__pyx_v_fill_up_cross_swp = NULL;
PyObject *__pyx_v_cvp_release = NULL;
PyObject *__pyx_v_cvp_release2 = NULL;
PyObject *__pyx_v_fill_up_cross_cvp = NULL;
PyObject *__pyx_v_seller_total = NULL;
PyObject *__pyx_v_buyer_total = NULL;
PyObject *__pyx_v_seller_turnback = NULL;
PyObject *__pyx_v_buyer_turnback = NULL;
PyObject *__pyx_v_total_contract = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_additional_carryover = NULL;
PyObject *__pyx_v_this_reservoir_all_contract = NULL;
PyObject *__pyx_v_priority_deliveries = NULL;
PyObject *__pyx_v_secondary_deliveries = NULL;
double __pyx_v_total_res_carryover;
PyObject *__pyx_v_priority_contract = NULL;
PyObject *__pyx_v_secondary_contract = NULL;
double __pyx_v_extra_allocation;
PyObject *__pyx_v_total_allocation = NULL;
PyObject *__pyx_v_tot_ind_deliveries = NULL;
PyObject *__pyx_v_tot_ind_carryover = NULL;
PyObject *__pyx_v_tot_ind_turnback = NULL;
PyObject *__pyx_v_tot_ind_paper = NULL;
PyObject *__pyx_v_tot_res_deliveries = NULL;
PyObject *__pyx_v_priority_storage = NULL;
double __pyx_v_tot_res_carryover;
PyObject *__pyx_v_total_water = NULL;
PyObject *__pyx_v_next_year_carryover = NULL;
PyObject *__pyx_v_this_year_carryover = NULL;
PyObject *__pyx_v_counter = NULL;
double __pyx_v_target_eoy;
long __pyx_v_use_tolerance;
PyObject *__pyx_v_flow_type = NULL;
PyObject *__pyx_v_waterbank_obj = NULL;
PyObject *__pyx_v_participant_key = NULL;
PyObject *__pyx_v_exchanger_list = NULL;
PyObject *__pyx_v_exchange_max = NULL;
PyObject *__pyx_v_exchange_request = NULL;
PyObject *__pyx_v_delivered_exchange = NULL;
PyObject *__pyx_v_ind_exchange = NULL;
PyObject *__pyx_v_exchange_contract = NULL;
CYTHON_UNUSED PyObject *__pyx_v_delivery_key = NULL;
PyObject *__pyx_v_canal_size = NULL;
PyObject *__pyx_v_total_current_balance = NULL;
PyObject *__pyx_v_total_projected_supply = NULL;
double __pyx_v_conservative_estimate;
PyObject *__pyx_v_available_exchange_kern = NULL;
PyObject *__pyx_v_requester_list = NULL;
PyObject *__pyx_v_total_request = NULL;
PyObject *__pyx_v_request_fraction = NULL;
PyObject *__pyx_v_exchanged_value = NULL;
PyObject *__pyx_v_available_flow = NULL;
PyObject *__pyx_v_zz = NULL;
CYTHON_UNUSED PyObject *__pyx_v_excess_water = NULL;
CYTHON_UNUSED PyObject *__pyx_v_unmet_demand = NULL;
PyObject *__pyx_v_flood_order_list = NULL;
long __pyx_v_overflow_deliveries;
PyObject *__pyx_v_numdays_fillup = NULL;
PyObject *__pyx_v_demand_days = NULL;
PyObject *__pyx_v_lookahead_days = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_reservoir = NULL;
PyObject *__pyx_v_carryover_days = NULL;
PyObject *__pyx_v_swp_pump = NULL;
PyObject *__pyx_v_cvp_pump = NULL;
CYTHON_UNUSED double __pyx_v_tot_paper;
CYTHON_UNUSED double __pyx_v_tot_turnback;
CYTHON_UNUSED double __pyx_v_lastYearCarryover;
long __pyx_v_use_contract;
PyObject *__pyx_v_new_alloc = NULL;
PyObject *__pyx_v_carryover = NULL;
PyObject *__pyx_v_current_carryover_storage = NULL;
PyObject *__pyx_v_fudge_factor = NULL;
PyObject *__pyx_v_sum_carryover = NULL;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_canal_loc = NULL;
PyObject *__pyx_v_loc_id = NULL;
CYTHON_UNUSED int __pyx_9genexpr33__pyx_v__;
CYTHON_UNUSED long __pyx_9genexpr34__pyx_v__;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("simulate_south", 0);
__Pyx_TraceCall("simulate_south", __pyx_f[0], 2546, 0, __PYX_ERR(0, 2546, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_28);
__Pyx_AddTraceback("calfews_src.model_cy.Model.simulate_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_total_canal_demand);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_da);
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_y);
__Pyx_XDECREF(__pyx_v_wateryear);
__Pyx_XDECREF(__pyx_v_year_index);
__Pyx_XDECREF(__pyx_v_m1);
__Pyx_XDECREF(__pyx_v_watershed_reservoir_list);
__Pyx_XDECREF(__pyx_v_extra_s);
__Pyx_XDECREF(__pyx_v_extra_f);
__Pyx_XDECREF(__pyx_v_land_constraint);
__Pyx_XDECREF(__pyx_v_crop);
__Pyx_XDECREF(__pyx_v_water_constraint_by_source);
__Pyx_XDECREF(__pyx_v_water_available);
__Pyx_XDECREF(__pyx_v_source);
__Pyx_XDECREF(__pyx_v_contracts_from_source);
__Pyx_XDECREF(__pyx_v_source_contracts);
__Pyx_XDECREF(__pyx_v_x0);
__Pyx_XDECREF(__pyx_v_allocation_change);
__Pyx_XDECREF(__pyx_v_expected_pumping);
__Pyx_XDECREF(__pyx_v_swp_release);
__Pyx_XDECREF(__pyx_v_swp_release2);
__Pyx_XDECREF(__pyx_v_fill_up_cross_swp);
__Pyx_XDECREF(__pyx_v_cvp_release);
__Pyx_XDECREF(__pyx_v_cvp_release2);
__Pyx_XDECREF(__pyx_v_fill_up_cross_cvp);
__Pyx_XDECREF(__pyx_v_seller_total);
__Pyx_XDECREF(__pyx_v_buyer_total);
__Pyx_XDECREF(__pyx_v_seller_turnback);
__Pyx_XDECREF(__pyx_v_buyer_turnback);
__Pyx_XDECREF(__pyx_v_total_contract);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_additional_carryover);
__Pyx_XDECREF(__pyx_v_this_reservoir_all_contract);
__Pyx_XDECREF(__pyx_v_priority_deliveries);
__Pyx_XDECREF(__pyx_v_secondary_deliveries);
__Pyx_XDECREF(__pyx_v_priority_contract);
__Pyx_XDECREF(__pyx_v_secondary_contract);
__Pyx_XDECREF(__pyx_v_total_allocation);
__Pyx_XDECREF(__pyx_v_tot_ind_deliveries);
__Pyx_XDECREF(__pyx_v_tot_ind_carryover);
__Pyx_XDECREF(__pyx_v_tot_ind_turnback);
__Pyx_XDECREF(__pyx_v_tot_ind_paper);
__Pyx_XDECREF(__pyx_v_tot_res_deliveries);
__Pyx_XDECREF(__pyx_v_priority_storage);
__Pyx_XDECREF(__pyx_v_total_water);
__Pyx_XDECREF(__pyx_v_next_year_carryover);
__Pyx_XDECREF(__pyx_v_this_year_carryover);
__Pyx_XDECREF(__pyx_v_counter);
__Pyx_XDECREF(__pyx_v_flow_type);
__Pyx_XDECREF(__pyx_v_waterbank_obj);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_exchanger_list);
__Pyx_XDECREF(__pyx_v_exchange_max);
__Pyx_XDECREF(__pyx_v_exchange_request);
__Pyx_XDECREF(__pyx_v_delivered_exchange);
__Pyx_XDECREF(__pyx_v_ind_exchange);
__Pyx_XDECREF(__pyx_v_exchange_contract);
__Pyx_XDECREF(__pyx_v_delivery_key);
__Pyx_XDECREF(__pyx_v_canal_size);
__Pyx_XDECREF(__pyx_v_total_current_balance);
__Pyx_XDECREF(__pyx_v_total_projected_supply);
__Pyx_XDECREF(__pyx_v_available_exchange_kern);
__Pyx_XDECREF(__pyx_v_requester_list);
__Pyx_XDECREF(__pyx_v_total_request);
__Pyx_XDECREF(__pyx_v_request_fraction);
__Pyx_XDECREF(__pyx_v_exchanged_value);
__Pyx_XDECREF(__pyx_v_available_flow);
__Pyx_XDECREF(__pyx_v_zz);
__Pyx_XDECREF(__pyx_v_excess_water);
__Pyx_XDECREF(__pyx_v_unmet_demand);
__Pyx_XDECREF(__pyx_v_flood_order_list);
__Pyx_XDECREF(__pyx_v_numdays_fillup);
__Pyx_XDECREF(__pyx_v_demand_days);
__Pyx_XDECREF(__pyx_v_lookahead_days);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_reservoir);
__Pyx_XDECREF(__pyx_v_carryover_days);
__Pyx_XDECREF(__pyx_v_swp_pump);
__Pyx_XDECREF(__pyx_v_cvp_pump);
__Pyx_XDECREF(__pyx_v_new_alloc);
__Pyx_XDECREF(__pyx_v_carryover);
__Pyx_XDECREF(__pyx_v_current_carryover_storage);
__Pyx_XDECREF(__pyx_v_fudge_factor);
__Pyx_XDECREF(__pyx_v_sum_carryover);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_canal_loc);
__Pyx_XDECREF(__pyx_v_loc_id);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2547: cdef Canal canal_obj
2548: cdef Reservoir reservoir_obj
2549: cdef Contract contract_obj, contract_obj2
2550: cdef District district_obj, leiu_obj
2551: cdef Private private_obj
2552: cdef Waterbank waterbank_private
2553: cdef dict total_canal_demand
2554:
2555: ####Maintain the same date/time accounting as the northern part of the model
+2556: d = self.day_year[t]
if (unlikely(__pyx_v_self->day_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2556, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->day_year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_d = __pyx_t_1;
__pyx_t_1 = 0;
+2557: da = self.day_month[t]
if (unlikely(__pyx_v_self->day_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2557, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->day_month, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2557, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_da = __pyx_t_1;
__pyx_t_1 = 0;
+2558: dowy = self.dowy[t]
if (unlikely(__pyx_v_self->dowy == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2558, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2558, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_dowy = __pyx_t_1;
__pyx_t_1 = 0;
+2559: m = self.month[t]
if (unlikely(__pyx_v_self->month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2559, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->month, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_m = __pyx_t_1;
__pyx_t_1 = 0;
+2560: y = self.year[t]
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2560, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_y = __pyx_t_1;
__pyx_t_1 = 0;
+2561: wateryear = self.water_year[t]
if (unlikely(__pyx_v_self->water_year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2561, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->water_year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_wateryear = __pyx_t_1;
__pyx_t_1 = 0;
+2562: year_index = y - self.starting_year
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Subtract(__pyx_v_y, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_year_index = __pyx_t_2; __pyx_t_2 = 0;
2563:
+2564: if m == 12:
__pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_12, 12, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2564, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+2565: m1 = 1
__Pyx_INCREF(__pyx_int_1);
__pyx_v_m1 = __pyx_int_1;
2566: else:
+2567: m1 = m + 1
/*else*/ {
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_m1 = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_L3:;
2568:
2569: #####Pumping and project allocations (projections of future pumping) are passed
2570: #####Into the southern model from the delta calcs in the northern model
+2571: self.trp_pumping[t] = trp_pump
if (unlikely(__pyx_v_self->trp_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2571, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->trp_pumping, __pyx_v_t, __pyx_v_trp_pump) < 0)) __PYX_ERR(0, 2571, __pyx_L1_error)
+2572: self.hro_pumping[t] = hro_pump
if (unlikely(__pyx_v_self->hro_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2572, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->hro_pumping, __pyx_v_t, __pyx_v_hro_pump) < 0)) __PYX_ERR(0, 2572, __pyx_L1_error)
+2573: self.annual_SWP[wateryear] += hro_pump
if (unlikely(__pyx_v_self->annual_SWP == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2573, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->annual_SWP);
__pyx_t_4 = __pyx_v_self->annual_SWP;
__Pyx_INCREF(__pyx_v_wateryear);
__pyx_t_2 = __pyx_v_wateryear;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2573, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_hro_pump); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2573, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_2, __pyx_t_5) < 0)) __PYX_ERR(0, 2573, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2574: self.annual_CVP[wateryear] += trp_pump
if (unlikely(__pyx_v_self->annual_CVP == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2574, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->annual_CVP);
__pyx_t_4 = __pyx_v_self->annual_CVP;
__Pyx_INCREF(__pyx_v_wateryear);
__pyx_t_2 = __pyx_v_wateryear;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2574, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_v_trp_pump); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2574, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(0, 2574, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2575: self.cvp_allocation[t] = cvp_alloc
if (unlikely(__pyx_v_self->cvp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2575, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->cvp_allocation, __pyx_v_t, __pyx_v_cvp_alloc) < 0)) __PYX_ERR(0, 2575, __pyx_L1_error)
+2576: self.swp_allocation[t] = swp_alloc
if (unlikely(__pyx_v_self->swp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2576, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->swp_allocation, __pyx_v_t, __pyx_v_swp_alloc) < 0)) __PYX_ERR(0, 2576, __pyx_L1_error)
2577:
2578: ####Various infrastructure & regulatory changes that
2579: ####occurred during the duration of the 1996-2016 calibration period
+2580: if self.model_mode == 'validation':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_self->model_mode, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2580, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L4; }
+2581: self.update_regulations_south(t,dowy,m,year_index + self.starting_year, wateryear)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_regulations_south); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyNumber_Add(__pyx_v_year_index, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_t_7, __pyx_v_wateryear}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_t_7, __pyx_v_wateryear}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_m); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_v_wateryear); __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2582: else:
+2583: self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_t, __pyx_v_dowy};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_t, __pyx_v_dowy};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_9) {
__Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL;
}
__Pyx_INCREF(__pyx_v_t);
__Pyx_GIVEREF(__pyx_v_t);
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_t);
__Pyx_INCREF(__pyx_v_dowy);
__Pyx_GIVEREF(__pyx_v_dowy);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_dowy);
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2583, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_self->millerton->sjrr_release = __pyx_t_10;
}
__pyx_L4:;
2584:
2585: ####Calculate water balance/flow requirements at each
2586: ####local reservoir, in the same fashion as they are calculated for the
2587: ####Northern Reservoir
+2588: watershed_reservoir_list = [self.millerton, self.success, self.kaweah, self.isabella, self.pineflat]
__pyx_t_2 = PyList_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->millerton)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->pineflat)); __pyx_v_watershed_reservoir_list = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+2589: for reservoir_obj in watershed_reservoir_list:
__pyx_t_2 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2589, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2589, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2590: reservoir_obj.rights_call(reservoir_obj.downstream[t])
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_rights_call); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_reservoir_obj->downstream == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2590, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->downstream, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2591: reservoir_obj.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->first_d_of_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2591, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->first_d_of_month, __pyx_v_year_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[7] = {__pyx_t_5, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_9, __pyx_v_wyt}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[7] = {__pyx_t_5, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_9, __pyx_v_wyt}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_12 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_d); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_8, __pyx_v_wyt); __pyx_t_9 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2592:
2593: ###Flow projections for the local reservoirs
2594: ###Note: no flow projection for the San Luis Reservoir,
2595: ###because it has no watershed affects. Projections of pumping
2596: ###are calculated in the northern function, and passed here as
2597: ###'projected allocations'
+2598: for reservoir_obj in watershed_reservoir_list:
__pyx_t_2 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2598, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2598, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2599: reservoir_obj.find_available_storage(t, m, da, dowy)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_available_storage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2599, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2599, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_9 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_dowy); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2600:
2601: ##Water Balance step at each reservoir
+2602: for reservoir_obj in watershed_reservoir_list:
__pyx_t_2 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2602, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2602, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2603: reservoir_obj.step(t)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_step); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_t); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2604:
2605: ##Water balance/capacity sharing at San Luis Reservoir - capacity
2606: ##Sharing means that both the state/federal portions can exceed 50% of the
2607: ##total storage in San Luis, but any extra storage must be evacuated if pumping
2608: ##from the other project begins to encroach on this space (i.e. temporary storage in the
2609: ##other projects capacity)
+2610: if t < (self.T - 1):
__pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_self->T - 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L11; }
+2611: extra_s, extra_f = self.step_san_luis(t, m, da)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_step_san_luis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_da); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2611, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_9 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_7), 2) < 0) __PYX_ERR(0, 2611, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2611, __pyx_L1_error) __pyx_L13_unpacking_done:; } __pyx_v_extra_s = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_extra_f = __pyx_t_9; __pyx_t_9 = 0;
2612: else:
+2613: extra_s = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_s = __pyx_float_0_0;
+2614: extra_f = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_f = __pyx_float_0_0;
}
__pyx_L11:;
2615:
2616: ###If pumping would occur from the northern model, but cannot because San Luis
2617: ###Reservoir is full (and unable to be emptied), the projects 'take back' any
2618: ###carryover water and pretend that it was pumped, adding the carryover to the projections for
2619: ###this year's allocation. This has the effect of taking water belonging to an individual contractor
2620: ###(i.e. Southern California) and dividing it among all contractors
+2621: self.appropriate_carryover(swp_forgone, "SLS", wateryear)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_appropriate_carryover); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_swp_forgone, __pyx_n_u_SLS, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2621, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_swp_forgone, __pyx_n_u_SLS, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2621, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_swp_forgone); __Pyx_GIVEREF(__pyx_v_swp_forgone); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_swp_forgone); __Pyx_INCREF(__pyx_n_u_SLS); __Pyx_GIVEREF(__pyx_n_u_SLS); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_n_u_SLS); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2622: self.appropriate_carryover(cvp_forgone, "SLF", wateryear)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_appropriate_carryover); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_cvp_forgone, __pyx_n_u_SLF, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2622, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_cvp_forgone, __pyx_n_u_SLF, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2622, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_2 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_cvp_forgone); __Pyx_GIVEREF(__pyx_v_cvp_forgone); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_cvp_forgone); __Pyx_INCREF(__pyx_n_u_SLF); __Pyx_GIVEREF(__pyx_n_u_SLF); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_n_u_SLF); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2623: self.sanluisstate.flood_spill[t] += swp_forgone
if (unlikely(__pyx_v_self->sanluisstate->flood_spill == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2623, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->sanluisstate->flood_spill);
__pyx_t_4 = __pyx_v_self->sanluisstate->flood_spill;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_1 = __pyx_v_t;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2623, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_v_swp_forgone); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2623, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2624: self.sanluisfederal.flood_spill[t] += cvp_forgone
if (unlikely(__pyx_v_self->sanluisfederal->flood_spill == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2624, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->sanluisfederal->flood_spill);
__pyx_t_4 = __pyx_v_self->sanluisfederal->flood_spill;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_1 = __pyx_v_t;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2624, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_v_cvp_forgone); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2624, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_1, __pyx_t_9) < 0)) __PYX_ERR(0, 2624, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2625:
2626: ##Find ID demands
2627: ###Daily demands are calculated from monthly demands based on
2628: ###crop acreage. Right now the acreage is dependent on water year type,
2629: ###so demand for each water year type can be calculated before the timestep loop.
2630: ###When crop allocation functions are added, this demand must be calculated at least once
2631: ###per year (as acreages update). Daily demands are just monthly demands divided by the number
2632: ###of days in a month
+2633: if m == 3 and da == 2:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_6 = __pyx_t_3; goto __pyx_L15_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_3; __pyx_L15_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2634: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2634, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2634, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2635: if district_obj.has_pmp:
__pyx_t_6 = (__pyx_v_district_obj->has_pmp != 0);
if (__pyx_t_6) {
/* … */
}
+2636: total_water_base = 0.0
__pyx_v_total_water_base = 0.0;
+2637: land_constraint = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_land_constraint, __pyx_float_0_0);
+2638: for crop in district_obj.irrdemand.crop_list:
if (unlikely(__pyx_v_district_obj->irrdemand->crop_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2638, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_district_obj->irrdemand->crop_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2638, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_2);
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2639: land_constraint += district_obj.irrdemand.baseline_inputs['LAND'][crop]
if (unlikely(__pyx_v_district_obj->irrdemand->baseline_inputs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2639, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->irrdemand->baseline_inputs, __pyx_n_u_LAND); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_crop); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_land_constraint, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF_SET(__pyx_v_land_constraint, __pyx_t_2);
__pyx_t_2 = 0;
+2640: water_constraint_by_source = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_water_constraint_by_source, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
+2641: water_available = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_water_available, __pyx_float_0_0);
+2642: for source in district_obj.irrdemand.water_source_list:
if (unlikely(__pyx_v_district_obj->irrdemand->water_source_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2642, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_district_obj->irrdemand->water_source_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2642, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_XDECREF_SET(__pyx_v_source, __pyx_t_2);
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2643: if source != 'GW':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_source, __pyx_n_u_GW, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2643, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+2644: contracts_from_source = self.source_codes[source]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source_codes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_source); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_contracts_from_source, __pyx_t_7); __pyx_t_7 = 0;
+2645: water_constraint_by_source[source] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_v_source, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2645, __pyx_L1_error)
+2646: for source_contracts in contracts_from_source:
if (likely(PyList_CheckExact(__pyx_v_contracts_from_source)) || PyTuple_CheckExact(__pyx_v_contracts_from_source)) { __pyx_t_7 = __pyx_v_contracts_from_source; __Pyx_INCREF(__pyx_t_7); __pyx_t_15 = 0; __pyx_t_16 = NULL; } else { __pyx_t_15 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_contracts_from_source); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_16 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2646, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_7))) { if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2646, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2646, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_16(__pyx_t_7); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2646, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_source_contracts, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2647: water_available += (district_obj.deliveries[source_contracts][wateryear] + district_obj.projected_supply[source_contracts])*1000.0
if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2647, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_source_contracts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2647, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_v_source_contracts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyNumber_Add(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_float_1000_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_water_available, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_water_available, __pyx_t_5);
__pyx_t_5 = 0;
+2648: water_constraint_by_source[source] += (district_obj.deliveries[source_contracts][wateryear] + district_obj.projected_supply[source_contracts])*1000.0
__Pyx_INCREF(__pyx_v_source); __pyx_t_5 = __pyx_v_source; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_water_constraint_by_source, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2648, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_source_contracts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2648, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_v_source_contracts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = PyNumber_Add(__pyx_t_17, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Multiply(__pyx_t_18, __pyx_float_1000_0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_t_5, __pyx_t_18) < 0)) __PYX_ERR(0, 2648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2649: water_constraint_by_source['GW'] = max(district_obj.total_water_base - water_available, 0.0)
__pyx_t_10 = 0.0;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = PyNumber_Subtract(__pyx_t_9, __pyx_v_water_available); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_18 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_6) {
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = __pyx_t_18;
__pyx_t_18 = 0;
} else {
__Pyx_INCREF(__pyx_t_7);
__pyx_t_9 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_n_u_GW, __pyx_t_7) < 0)) __PYX_ERR(0, 2649, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2650: i = 0
__pyx_v_i = 0;
+2651: x0 = np.zeros(len(district_obj.acreage_by_pmp_crop_type))
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_14 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); } } __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_5, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_9); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF_SET(__pyx_v_x0, __pyx_t_7); __pyx_t_7 = 0;
+2652: for i in range(0, len(district_obj.acreage_by_pmp_crop_type)):
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2652, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_15 = __pyx_t_14; for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_15; __pyx_t_19+=1) { __pyx_v_i = __pyx_t_19;
+2653: x0[i] = district_obj.acreage_by_pmp_crop_type[i]
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_v_x0, __pyx_v_i, __pyx_t_18, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2653, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; }
+2654: district_obj.set_pmp_acreage(water_constraint_by_source, land_constraint, x0)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_pmp_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2654, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2654, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_water_constraint_by_source); __Pyx_GIVEREF(__pyx_v_water_constraint_by_source); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_water_constraint_by_source); __Pyx_INCREF(__pyx_v_land_constraint); __Pyx_GIVEREF(__pyx_v_land_constraint); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_land_constraint); __Pyx_INCREF(__pyx_v_x0); __Pyx_GIVEREF(__pyx_v_x0); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_x0); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2655:
+2656: if dowy == 0:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2656, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ }
+2657: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2657, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_18); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2657, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2657, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2658: if wateryear > 0:
__pyx_t_18 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2658, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_6) { /* … */ }
+2659: private_obj.permanent_crop_growth(wateryear, self.days_in_month, self.non_leap_year)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_permanent_crop_growth); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_wateryear, __pyx_v_self->days_in_month, __pyx_t_5}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_wateryear, __pyx_v_self->days_in_month, __pyx_t_5}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2660: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2660, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_18); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2660, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2660, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2661: district_obj.calc_demand(wateryear, year_index, da, m, self.days_in_month, m1, wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_calc_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[8] = {__pyx_t_12, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_v_self->days_in_month, __pyx_v_m1, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2661, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[8] = {__pyx_t_12, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_v_self->days_in_month, __pyx_v_m1, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2661, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_5 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_m1); __Pyx_GIVEREF(__pyx_v_m1); PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_8, __pyx_v_m1); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_8, __pyx_v_wyt); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2662: if district_obj.has_private:
__pyx_t_6 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_6) {
/* … */
}
+2663: district_obj.private_demand = {}
__pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_18); __Pyx_GOTREF(__pyx_v_district_obj->private_demand); __Pyx_DECREF(__pyx_v_district_obj->private_demand); __pyx_v_district_obj->private_demand = ((PyObject*)__pyx_t_18); __pyx_t_18 = 0;
+2664: district_obj.private_delivery = {}
__pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_18); __Pyx_GOTREF(__pyx_v_district_obj->private_delivery); __Pyx_DECREF(__pyx_v_district_obj->private_delivery); __pyx_v_district_obj->private_delivery = ((PyObject*)__pyx_t_18); __pyx_t_18 = 0;
+2665: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2665, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_18); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2665, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2665, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2665, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2666: private_obj.calc_demand(wateryear, year_index, da, m, self.days_in_month, self.non_leap_year, m1, wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_calc_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_12, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_v_self->days_in_month, __pyx_t_5, __pyx_v_m1, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_12, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_v_self->days_in_month, __pyx_t_5, __pyx_v_m1, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(8+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_v_m1); __Pyx_GIVEREF(__pyx_v_m1); PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_v_m1); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_9, 7+__pyx_t_8, __pyx_v_wyt); __pyx_t_5 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2667:
2668: ###For demands that occur on a branch of the California Aqueduct
2669: ###(i.e. pumped into some kind of regional urban storage/distribution
2670: ###systems, daily demand are just the observed pumping (i.e. no model of
2671: ###the southern California/South Bay/Central Coast urban demand). To run the
2672: ###model in projection mode, we need statistical series of pumping at each of the Cal Aqueduct
2673: ###branches. Note: for Bakersfield and Fresno in the local water systems, demands are deterministic
2674: ###seasonal estimates. Adding in pop. growth, etc. would be trivial, but is not included
+2675: if t > 0:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2675, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2675, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L38; }
+2676: allocation_change = self.swp_allocation[t] - self.swp_allocation[t-1]
if (unlikely(__pyx_v_self->swp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2676, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->swp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2676, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->swp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2676, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2676, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_self->swp_allocation, __pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2676, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_Subtract(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2676, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_allocation_change = __pyx_t_18;
__pyx_t_18 = 0;
2677: else:
+2678: allocation_change = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_allocation_change = __pyx_float_0_0;
}
__pyx_L38:;
+2679: for district_obj in self.urban_list:
if (unlikely(__pyx_v_self->urban_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2679, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->urban_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2679, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2679, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2679, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2680: district_obj.get_urban_demand(t, m, da, dowy, wateryear, year_index, self.dowy_eom, self.forecastSRI[t], self.swp_allocation[t], allocation_change, self.model_mode)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_get_urban_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->forecastSRI == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2680, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__pyx_v_self->swp_allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2680, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_self->swp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[12] = {__pyx_t_12, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->dowy_eom, __pyx_t_9, __pyx_t_5, __pyx_v_allocation_change, __pyx_v_self->model_mode}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[12] = {__pyx_t_12, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->dowy_eom, __pyx_t_9, __pyx_t_5, __pyx_v_allocation_change, __pyx_v_self->model_mode}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_2 = PyTuple_New(11+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_8, __pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 7+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 8+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_v_allocation_change); __Pyx_GIVEREF(__pyx_v_allocation_change); PyTuple_SET_ITEM(__pyx_t_2, 9+__pyx_t_8, __pyx_v_allocation_change); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_2, 10+__pyx_t_8, __pyx_v_self->model_mode); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2681: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2681, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2681, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2681, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2682: private_obj.get_urban_demand(t, m, da, wateryear, year_index, self.dowy_eom, self.forecastSRI[t], dowy, self.swp_allocation[t], allocation_change, self.model_mode)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_get_urban_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->forecastSRI == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2682, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->swp_allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2682, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_self->swp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[12] = {__pyx_t_9, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->dowy_eom, __pyx_t_2, __pyx_v_dowy, __pyx_t_5, __pyx_v_allocation_change, __pyx_v_self->model_mode}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[12] = {__pyx_t_9, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->dowy_eom, __pyx_t_2, __pyx_v_dowy, __pyx_t_5, __pyx_v_allocation_change, __pyx_v_self->model_mode}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_12 = PyTuple_New(11+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_8, __pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 6+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_12, 7+__pyx_t_8, __pyx_v_dowy); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 8+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_v_allocation_change); __Pyx_GIVEREF(__pyx_v_allocation_change); PyTuple_SET_ITEM(__pyx_t_12, 9+__pyx_t_8, __pyx_v_allocation_change); __Pyx_INCREF(__pyx_v_self->model_mode); __Pyx_GIVEREF(__pyx_v_self->model_mode); PyTuple_SET_ITEM(__pyx_t_12, 10+__pyx_t_8, __pyx_v_self->model_mode); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
2683: #else:
2684: #self.project_urban_pumping(da, dowy, m, wateryear, year_index, self.swp_allocation[t], self.cvp_allocation[t], self.forecastSRI[t])
2685:
+2686: if m == 10 and da == 1:
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2686, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_3) { } else { __pyx_t_6 = __pyx_t_3; goto __pyx_L44_bool_binop_done; } __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2686, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_6 = __pyx_t_3; __pyx_L44_bool_binop_done:; if (__pyx_t_6) { /* … */ }
2687: ###Pre flood demands - used to approximate the limit
2688: ###for carryover storage (don't want to carryover more water than you can
2689: ###use from Oct-Jan). Values for aqueduct branches are estimated to
2690: ###avoid 'perfect foresight'
+2691: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2691, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2691, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2691, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2691, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2692: district_obj.find_baseline_demands(wateryear, self.non_leap_year, self.days_in_month)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_wateryear, __pyx_t_12, __pyx_v_self->days_in_month}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_wateryear, __pyx_t_12, __pyx_v_self->days_in_month}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_2 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_v_self->days_in_month); __pyx_t_12 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2693: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2693, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2693, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2693, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2693, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2694: private_obj.find_baseline_demands(self.non_leap_year, self.days_in_month)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->non_leap_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_v_self->days_in_month}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_v_self->days_in_month}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_self->days_in_month); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
2695:
+2696: for district_obj in self.urban_list:
if (unlikely(__pyx_v_self->urban_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2696, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->urban_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2696, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2696, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2696, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2697: district_obj.find_pre_flood_demand(year_index, self.days_in_month, wyt)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_pre_flood_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_wyt}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_wyt}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_2 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_v_wyt); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2698: self.socal.pre_flood_demand = 500.0
__pyx_v_self->socal->pre_flood_demand = 500.0;
+2699: self.centralcoast.pre_flood_demand = 25.0
__pyx_v_self->centralcoast->pre_flood_demand = 25.0;
+2700: self.southbay.pre_flood_demand = 15.0
__pyx_v_self->southbay->pre_flood_demand = 15.0;
2701:
2702: ###Take the monthly demands for each irrigation district and
2703: ###'assign' them to a reservoir - this is used to estimate
2704: ###fillup times so that districts know when to request recharge water
2705: #generates res.monthlydemand from aggregated district.monthlydemand
+2706: if da == 1:
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2706, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_6) { /* … */ }
+2707: self.agg_contract_demands(year_index, m, wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_agg_contract_demands); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2707, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2707, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_2 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_v_wyt); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2708:
2709: ##Once a month, find the recharge capacity for each irrigation district
2710: ###This capacity is projected forward for a year to project how capacity would decline
2711: ###under continuous use - recalculated every month to update for actual use
2712: #generates self.district.max_leiu_recharge & self.district.max_direct_recharge
+2713: if da == 1:
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2713, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_6) { /* … */ }
+2714: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2714, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2714, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2714, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2715: district_obj.reset_recharge_recovery()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2716: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2716, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2716, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2716, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2717: private_obj.reset_recharge_recovery()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2718: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2718, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2718, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2718, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2719: private_obj.reset_recharge_recovery()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
2720: ##searches through all waterbanks to find recharge capacity,
2721: ##applies that capacity to districts by ownership shares
+2722: self.find_recharge_bank(m,wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_recharge_bank); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2722, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2722, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_wyt); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2723: ##searches through all leiu bankign districts to find recharge capacity,
2724: ##applies that capacity to districts by ownership shares
+2725: self.find_recharge_leiu(m,wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_recharge_leiu); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2725, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2725, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_wyt); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2726: ##searches through all districts to find native recharge capacity
+2727: self.find_recharge_indistrict(m,wyt)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_recharge_indistrict); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2727, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_m, __pyx_v_wyt}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2727, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_wyt); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2728: self.find_leiu_exchange(wateryear, dowy)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_leiu_exchange); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_wateryear, __pyx_v_dowy}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2728, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_wateryear, __pyx_v_dowy}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2728, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_v_dowy); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2729:
2730: #Find the number of days before each reservoir is expected to fill-up
2731: ##Get Article 21 water from San Luis
2732: #for san luis - need to know if we can use the xvc from california aquduct - check for turnout to xvc from kern river and fkc
2733: ###find flood releases for the SWP at san luis (self.sanluisstate.min_daily_uncontrolled) - also find release toggles (for northern reservoir pumping coordination w/ san luis) and numdays_fillup for SWP district recharge decisions
+2734: expected_pumping = self.estimate_project_pumping(t, proj_surplus, max_pumping, swp_AS, cvp_AS, self.max_tax_free, flood_release, wytSC)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_estimate_project_pumping); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_2, __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_self->max_tax_free, __pyx_v_flood_release, __pyx_v_wytSC}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_2, __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_self->max_tax_free, __pyx_v_flood_release, __pyx_v_wytSC}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_1 = PyTuple_New(8+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_proj_surplus); __Pyx_GIVEREF(__pyx_v_proj_surplus); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_v_proj_surplus); __Pyx_INCREF(__pyx_v_max_pumping); __Pyx_GIVEREF(__pyx_v_max_pumping); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_8, __pyx_v_max_pumping); __Pyx_INCREF(__pyx_v_swp_AS); __Pyx_GIVEREF(__pyx_v_swp_AS); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_8, __pyx_v_swp_AS); __Pyx_INCREF(__pyx_v_cvp_AS); __Pyx_GIVEREF(__pyx_v_cvp_AS); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_8, __pyx_v_cvp_AS); __Pyx_INCREF(__pyx_v_self->max_tax_free); __Pyx_GIVEREF(__pyx_v_self->max_tax_free); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_8, __pyx_v_self->max_tax_free); __Pyx_INCREF(__pyx_v_flood_release); __Pyx_GIVEREF(__pyx_v_flood_release); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_8, __pyx_v_flood_release); __Pyx_INCREF(__pyx_v_wytSC); __Pyx_GIVEREF(__pyx_v_wytSC); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_8, __pyx_v_wytSC); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_expected_pumping = __pyx_t_18; __pyx_t_18 = 0;
+2735: swp_release, swp_release2, self.sanluisstate.min_daily_uncontrolled, self.sanluisstate.numdays_fillup['demand'], fill_up_cross_swp = self.find_pumping_release(m, da, year_index, self.sanluisstate.S[t], 6680.0*cfs_tafd, self.sanluisstate.monthly_demand, self.sanluisstate.monthly_demand_must_fill, self.swpdelta.allocation[t-1]/self.swpdelta.total, expected_pumping['swp'], swp_AF, swp_AS, flood_volume['swp'], self.swpdelta.projected_carryover, self.swpdelta.running_carryover, self.max_tax_free, wyt, t, 'swp')
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_pumping_release); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2735, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_self->swpdelta->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2735, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_self->swpdelta->allocation, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->swpdelta->total); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_volume, __pyx_n_u_swp); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_self->swpdelta->projected_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_20 = PyFloat_FromDouble(__pyx_v_self->swpdelta->running_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[19] = {__pyx_t_21, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_1, __pyx_t_5, __pyx_v_self->sanluisstate->monthly_demand, __pyx_v_self->sanluisstate->monthly_demand_must_fill, __pyx_t_9, __pyx_t_2, __pyx_v_swp_AF, __pyx_v_swp_AS, __pyx_t_12, __pyx_t_17, __pyx_t_20, __pyx_v_self->max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_swp}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 18+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[19] = {__pyx_t_21, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_1, __pyx_t_5, __pyx_v_self->sanluisstate->monthly_demand, __pyx_v_self->sanluisstate->monthly_demand_must_fill, __pyx_t_9, __pyx_t_2, __pyx_v_swp_AF, __pyx_v_swp_AS, __pyx_t_12, __pyx_t_17, __pyx_t_20, __pyx_v_self->max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_swp}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 18+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_22 = PyTuple_New(18+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_year_index); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_v_self->sanluisstate->monthly_demand); __Pyx_GIVEREF(__pyx_v_self->sanluisstate->monthly_demand); PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_v_self->sanluisstate->monthly_demand); __Pyx_INCREF(__pyx_v_self->sanluisstate->monthly_demand_must_fill); __Pyx_GIVEREF(__pyx_v_self->sanluisstate->monthly_demand_must_fill); PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_v_self->sanluisstate->monthly_demand_must_fill); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_22, 7+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_22, 8+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_swp_AF); __Pyx_GIVEREF(__pyx_v_swp_AF); PyTuple_SET_ITEM(__pyx_t_22, 9+__pyx_t_8, __pyx_v_swp_AF); __Pyx_INCREF(__pyx_v_swp_AS); __Pyx_GIVEREF(__pyx_v_swp_AS); PyTuple_SET_ITEM(__pyx_t_22, 10+__pyx_t_8, __pyx_v_swp_AS); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_22, 11+__pyx_t_8, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_22, 12+__pyx_t_8, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 13+__pyx_t_8, __pyx_t_20); __Pyx_INCREF(__pyx_v_self->max_tax_free); __Pyx_GIVEREF(__pyx_v_self->max_tax_free); PyTuple_SET_ITEM(__pyx_t_22, 14+__pyx_t_8, __pyx_v_self->max_tax_free); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_22, 15+__pyx_t_8, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_22, 16+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_n_u_swp); __Pyx_GIVEREF(__pyx_n_u_swp); PyTuple_SET_ITEM(__pyx_t_22, 17+__pyx_t_8, __pyx_n_u_swp); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_12 = 0; __pyx_t_17 = 0; __pyx_t_20 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_18))) || (PyList_CheckExact(__pyx_t_18))) { PyObject* sequence = __pyx_t_18; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 5)) { if (size > 5) __Pyx_RaiseTooManyValuesError(5); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2735, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_20 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 4); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_22 = PyList_GET_ITEM(sequence, 1); __pyx_t_20 = PyList_GET_ITEM(sequence, 2); __pyx_t_17 = PyList_GET_ITEM(sequence, 3); __pyx_t_12 = PyList_GET_ITEM(sequence, 4); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(__pyx_t_12); #else { Py_ssize_t i; PyObject** temps[5] = {&__pyx_t_7,&__pyx_t_22,&__pyx_t_20,&__pyx_t_17,&__pyx_t_12}; for (i=0; i < 5; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else { Py_ssize_t index = -1; PyObject** temps[5] = {&__pyx_t_7,&__pyx_t_22,&__pyx_t_20,&__pyx_t_17,&__pyx_t_12}; __pyx_t_2 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; for (index=0; index < 5; index++) { PyObject* item = __pyx_t_13(__pyx_t_2); if (unlikely(!item)) goto __pyx_L60_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 5) < 0) __PYX_ERR(0, 2735, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L61_unpacking_done; __pyx_L60_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2735, __pyx_L1_error) __pyx_L61_unpacking_done:; } __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_swp_release = __pyx_t_7; __pyx_t_7 = 0; __pyx_v_swp_release2 = __pyx_t_22; __pyx_t_22 = 0; __pyx_v_self->sanluisstate->min_daily_uncontrolled = __pyx_t_10; if (unlikely(__pyx_v_self->sanluisstate->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2735, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->sanluisstate->numdays_fillup, __pyx_n_u_demand, __pyx_t_17) < 0)) __PYX_ERR(0, 2735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_v_fill_up_cross_swp = __pyx_t_12; __pyx_t_12 = 0;
2736:
2737: ###find flood releases for the CVP at san luis (self.sanluisfederal.min_daily_uncontrolled) - also find release toggles (for northern reservoir pumping coordination w/ san luis) and numdays_fillup for SWP district recharge decisions
+2738: cvp_release, cvp_release2, self.sanluisfederal.min_daily_uncontrolled, self.sanluisfederal.numdays_fillup['demand'], fill_up_cross_cvp = self.find_pumping_release(m, da, year_index, self.sanluisfederal.S[t], 4430.0*cfs_tafd, self.sanluisfederal.monthly_demand, self.sanluisfederal.monthly_demand_must_fill, (self.cvpdelta.allocation[t-1] + self.cvpexchange.allocation[t-1])/(self.cvpexchange.total+self.cvpdelta.total), expected_pumping['cvp'], cvp_AF, cvp_AS, flood_volume['cvp'], self.cvpdelta.projected_carryover, self.cvpdelta.running_carryover + self.cvpexchange.running_carryover + self.crossvalley.running_carryover, self.max_tax_free, wyt, t, 'cvp')
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_pumping_release); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2738, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_22 = PyNumber_Multiply(__pyx_float_4430_0, __pyx_t_20); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(__pyx_v_self->cvpdelta->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2738, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_self->cvpdelta->allocation, __pyx_t_20); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(__pyx_v_self->cvpexchange->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2738, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->cvpexchange->allocation, __pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_Add(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->cvpexchange->total + __pyx_v_self->cvpdelta->total)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_20, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_volume, __pyx_n_u_cvp); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_self->cvpdelta->projected_carryover); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyFloat_FromDouble(((__pyx_v_self->cvpdelta->running_carryover + __pyx_v_self->cvpexchange->running_carryover) + __pyx_v_self->crossvalley->running_carryover)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[19] = {__pyx_t_1, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_17, __pyx_t_22, __pyx_v_self->sanluisfederal->monthly_demand, __pyx_v_self->sanluisfederal->monthly_demand_must_fill, __pyx_t_7, __pyx_t_2, __pyx_v_cvp_AF, __pyx_v_cvp_AS, __pyx_t_20, __pyx_t_9, __pyx_t_5, __pyx_v_self->max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_cvp}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 18+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[19] = {__pyx_t_1, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_17, __pyx_t_22, __pyx_v_self->sanluisfederal->monthly_demand, __pyx_v_self->sanluisfederal->monthly_demand_must_fill, __pyx_t_7, __pyx_t_2, __pyx_v_cvp_AF, __pyx_v_cvp_AS, __pyx_t_20, __pyx_t_9, __pyx_t_5, __pyx_v_self->max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_cvp}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 18+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_21 = PyTuple_New(18+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_da); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_year_index); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_v_self->sanluisfederal->monthly_demand); __Pyx_GIVEREF(__pyx_v_self->sanluisfederal->monthly_demand); PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_v_self->sanluisfederal->monthly_demand); __Pyx_INCREF(__pyx_v_self->sanluisfederal->monthly_demand_must_fill); __Pyx_GIVEREF(__pyx_v_self->sanluisfederal->monthly_demand_must_fill); PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_8, __pyx_v_self->sanluisfederal->monthly_demand_must_fill); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_21, 8+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_cvp_AF); __Pyx_GIVEREF(__pyx_v_cvp_AF); PyTuple_SET_ITEM(__pyx_t_21, 9+__pyx_t_8, __pyx_v_cvp_AF); __Pyx_INCREF(__pyx_v_cvp_AS); __Pyx_GIVEREF(__pyx_v_cvp_AS); PyTuple_SET_ITEM(__pyx_t_21, 10+__pyx_t_8, __pyx_v_cvp_AS); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_21, 11+__pyx_t_8, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_21, 12+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_21, 13+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_v_self->max_tax_free); __Pyx_GIVEREF(__pyx_v_self->max_tax_free); PyTuple_SET_ITEM(__pyx_t_21, 14+__pyx_t_8, __pyx_v_self->max_tax_free); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_21, 15+__pyx_t_8, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_21, 16+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_n_u_cvp); __Pyx_GIVEREF(__pyx_n_u_cvp); PyTuple_SET_ITEM(__pyx_t_21, 17+__pyx_t_8, __pyx_n_u_cvp); __pyx_t_17 = 0; __pyx_t_22 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_20 = 0; __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_21, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_18))) || (PyList_CheckExact(__pyx_t_18))) { PyObject* sequence = __pyx_t_18; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 5)) { if (size > 5) __Pyx_RaiseTooManyValuesError(5); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2738, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_21 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_20 = PyTuple_GET_ITEM(sequence, 4); } else { __pyx_t_12 = PyList_GET_ITEM(sequence, 0); __pyx_t_21 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_9 = PyList_GET_ITEM(sequence, 3); __pyx_t_20 = PyList_GET_ITEM(sequence, 4); } __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_20); #else { Py_ssize_t i; PyObject** temps[5] = {&__pyx_t_12,&__pyx_t_21,&__pyx_t_5,&__pyx_t_9,&__pyx_t_20}; for (i=0; i < 5; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else { Py_ssize_t index = -1; PyObject** temps[5] = {&__pyx_t_12,&__pyx_t_21,&__pyx_t_5,&__pyx_t_9,&__pyx_t_20}; __pyx_t_2 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; for (index=0; index < 5; index++) { PyObject* item = __pyx_t_13(__pyx_t_2); if (unlikely(!item)) goto __pyx_L62_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 5) < 0) __PYX_ERR(0, 2738, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L63_unpacking_done; __pyx_L62_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2738, __pyx_L1_error) __pyx_L63_unpacking_done:; } __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_cvp_release = __pyx_t_12; __pyx_t_12 = 0; __pyx_v_cvp_release2 = __pyx_t_21; __pyx_t_21 = 0; __pyx_v_self->sanluisfederal->min_daily_uncontrolled = __pyx_t_10; if (unlikely(__pyx_v_self->sanluisfederal->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2738, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->sanluisfederal->numdays_fillup, __pyx_n_u_demand, __pyx_t_9) < 0)) __PYX_ERR(0, 2738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_fill_up_cross_cvp = __pyx_t_20; __pyx_t_20 = 0;
2739:
+2740: self.sanluisfederal.days_til_full[t] = min(self.sanluisfederal.numdays_fillup['demand'],fill_up_cross_cvp)
__Pyx_INCREF(__pyx_v_fill_up_cross_cvp); __pyx_t_18 = __pyx_v_fill_up_cross_cvp; if (unlikely(__pyx_v_self->sanluisfederal->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2740, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_self->sanluisfederal->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_5 = PyObject_RichCompare(__pyx_t_18, __pyx_t_20, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2740, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = __pyx_t_18; } else { __Pyx_INCREF(__pyx_t_20); __pyx_t_9 = __pyx_t_20; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __pyx_t_9; __Pyx_INCREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->sanluisfederal->days_til_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2740, __pyx_L1_error) } if (unlikely(PyObject_SetItem(__pyx_v_self->sanluisfederal->days_til_full, __pyx_v_t, __pyx_t_18) < 0)) __PYX_ERR(0, 2740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2741: self.sanluisstate.days_til_full[t] = min(self.sanluisstate.numdays_fillup['demand'],fill_up_cross_swp)
__Pyx_INCREF(__pyx_v_fill_up_cross_swp); __pyx_t_18 = __pyx_v_fill_up_cross_swp; if (unlikely(__pyx_v_self->sanluisstate->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2741, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->sanluisstate->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyObject_RichCompare(__pyx_t_18, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2741, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { __Pyx_INCREF(__pyx_t_18); __pyx_t_20 = __pyx_t_18; } else { __Pyx_INCREF(__pyx_t_9); __pyx_t_20 = __pyx_t_9; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __pyx_t_20; __Pyx_INCREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(__pyx_v_self->sanluisstate->days_til_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2741, __pyx_L1_error) } if (unlikely(PyObject_SetItem(__pyx_v_self->sanluisstate->days_til_full, __pyx_v_t, __pyx_t_18) < 0)) __PYX_ERR(0, 2741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2742:
2743: ###June 1st, determine who is buying/selling into 'turnback pools' for the SWP.
2744: ###Note: look into other contract types to determine if this happens in CVP, Friant, local source contracts too
+2745: if m == 6 and da == 1:
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_6, 6, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2745, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_3) { } else { __pyx_t_6 = __pyx_t_3; goto __pyx_L65_bool_binop_done; } __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2745, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_6 = __pyx_t_3; __pyx_L65_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2746: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2746, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_20 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_11); __Pyx_INCREF(__pyx_t_20); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2746, __pyx_L1_error)
#else
__pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2746, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_20));
__pyx_t_20 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2747: seller_total = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_seller_total, __pyx_float_0_0);
+2748: buyer_total = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_buyer_total, __pyx_float_0_0);
+2749: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2749, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2749, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2749, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2749, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2750: seller_turnback, buyer_turnback = district_obj.set_turnback_pool(contract_obj.name, year_index, self.days_in_month)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_turnback_pool); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_contract_obj->name, __pyx_v_year_index, __pyx_v_self->days_in_month}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_contract_obj->name, __pyx_v_year_index, __pyx_v_self->days_in_month}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_contract_obj->name); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_v_self->days_in_month); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2750, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_12 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_21)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_13(__pyx_t_21); if (unlikely(!__pyx_t_5)) goto __pyx_L71_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_12 = __pyx_t_13(__pyx_t_21); if (unlikely(!__pyx_t_12)) goto __pyx_L71_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_21), 2) < 0) __PYX_ERR(0, 2750, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; goto __pyx_L72_unpacking_done; __pyx_L71_unpacking_failed:; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2750, __pyx_L1_error) __pyx_L72_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_seller_turnback, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_buyer_turnback, __pyx_t_12); __pyx_t_12 = 0;
+2751: seller_total += seller_turnback
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_seller_total, __pyx_v_seller_turnback); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF_SET(__pyx_v_seller_total, __pyx_t_9); __pyx_t_9 = 0;
+2752: buyer_total += buyer_turnback
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_buyer_total, __pyx_v_buyer_turnback); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF_SET(__pyx_v_buyer_total, __pyx_t_9); __pyx_t_9 = 0;
+2753: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2753, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2753, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2753, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2753, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2754: total_contract = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_9); __pyx_t_9 = 0;
+2755: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2755, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_15); __Pyx_INCREF(__pyx_t_12); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2755, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2755, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_12);
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2756: # district_obj = self.district_keys[district_key]
+2757: total_contract[district_key] = self.district_keys[district_key].project_contract['tableA']
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2757, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_tableA); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(PyObject_SetItem(__pyx_v_total_contract, __pyx_v_district_key, __pyx_t_12) < 0)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2758: additional_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+2759: seller_turnback, buyer_turnback = private_obj.set_turnback_pool(contract_obj.name, year_index, self.days_in_month, additional_carryover)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_turnback_pool); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_contract_obj->name, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_additional_carryover}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_contract_obj->name, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_additional_carryover}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_21 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_v_contract_obj->name); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_additional_carryover); __Pyx_GIVEREF(__pyx_v_additional_carryover); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_v_additional_carryover); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_21, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2759, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_21 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_12 = PyList_GET_ITEM(sequence, 0); __pyx_t_21 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_21); #else __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_21 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_12 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_12)) goto __pyx_L77_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); index = 1; __pyx_t_21 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_21)) goto __pyx_L77_unpacking_failed; __Pyx_GOTREF(__pyx_t_21); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2759, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L78_unpacking_done; __pyx_L77_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2759, __pyx_L1_error) __pyx_L78_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_seller_turnback, __pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_buyer_turnback, __pyx_t_21); __pyx_t_21 = 0;
+2760: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2760, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_15); __Pyx_INCREF(__pyx_t_21); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2760, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2761: seller_total += seller_turnback[district_key]
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_seller_turnback, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_seller_total, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_seller_total, __pyx_t_12); __pyx_t_12 = 0;
+2762: buyer_total += buyer_turnback[district_key]
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_buyer_turnback, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_buyer_total, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF_SET(__pyx_v_buyer_total, __pyx_t_21); __pyx_t_21 = 0;
+2763: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2763, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2763, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2763, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2763, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2764: district_obj.make_turnback_purchases(seller_total, buyer_total, contract_obj.name)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_make_turnback_purchases); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_v_contract_obj->name}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_v_contract_obj->name}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_seller_total); __Pyx_GIVEREF(__pyx_v_seller_total); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_seller_total); __Pyx_INCREF(__pyx_v_buyer_total); __Pyx_GIVEREF(__pyx_v_buyer_total); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_buyer_total); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_contract_obj->name); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2765: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2765, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2765, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2765, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2766: private_obj.make_turnback_purchases(seller_total, buyer_total, contract_obj.name)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_make_turnback_purchases); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_v_contract_obj->name}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2766, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_v_contract_obj->name}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2766, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_seller_total); __Pyx_GIVEREF(__pyx_v_seller_total); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_seller_total); __Pyx_INCREF(__pyx_v_buyer_total); __Pyx_GIVEREF(__pyx_v_buyer_total); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_buyer_total); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_v_contract_obj->name); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2767:
2768:
2769:
2770: ####This function finds the expected # of days that a reservoir will fill
2771: ####districts use this numdays_fillup attribute to determine when to recharge
2772: ####carryover water
+2773: for reservoir_obj in [self.success, self.kaweah, self.isabella, self.pineflat, self.millerton]:
__pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_18, 0, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_18, 1, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_18, 2, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_18, 3, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_18, 4, ((PyObject *)__pyx_v_self->millerton)); __pyx_t_20 = __pyx_t_18; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; for (;;) { if (__pyx_t_11 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_18); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2773, __pyx_L1_error) #else __pyx_t_18 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_18)); __pyx_t_18 = 0; /* … */ } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2774: reservoir_obj.find_flow_pumping(t, m, dowy, year_index, self.days_in_month, self.dowy_eom, wyt, 'demand')
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_reservoir_obj), __pyx_n_s_find_flow_pumping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_wyt, __pyx_n_u_demand}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2774, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_self->dowy_eom, __pyx_v_wyt, __pyx_n_u_demand}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2774, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_12 = PyTuple_New(8+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_m); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_8, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_self->dowy_eom); __Pyx_GIVEREF(__pyx_v_self->dowy_eom); PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_8, __pyx_v_self->dowy_eom); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_12, 6+__pyx_t_8, __pyx_v_wyt); __Pyx_INCREF(__pyx_n_u_demand); __Pyx_GIVEREF(__pyx_n_u_demand); PyTuple_SET_ITEM(__pyx_t_12, 7+__pyx_t_8, __pyx_n_u_demand); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2775: reservoir_obj.days_til_full[t] = min(reservoir_obj.numdays_fillup['demand'], reservoir_obj.numdays_fillup['lookahead'])
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2775, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2775, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_18, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2775, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2775, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_18);
__pyx_t_12 = __pyx_t_18;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_12 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = __pyx_t_12;
__Pyx_INCREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__pyx_v_reservoir_obj->days_til_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2775, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->days_til_full, __pyx_v_t, __pyx_t_18) < 0)) __PYX_ERR(0, 2775, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
2776: #Update Contract Allocations
+2777: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2777, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_18); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2777, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2777, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2777, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
2778: #for a specific contract, look up the reservoir it is stored in
+2779: reservoir_obj = self.contract_reservoir[contract_obj.key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2779, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2779, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_18));
__pyx_t_18 = 0;
2780: #then find all the contracts associated with that reservoir
+2781: this_reservoir_all_contract = self.reservoir_contract[reservoir_obj.key]
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2781, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2781, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_18);
__pyx_t_18 = 0;
2782: #need to find the total deliveries already made from the reservoir,
2783: #total carryover storage at the reservoir, and the total priority/secondary allocations
2784: #at that reservoir
+2785: priority_deliveries = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_priority_deliveries, __pyx_float_0_0);
+2786: secondary_deliveries = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_secondary_deliveries, __pyx_float_0_0);
+2787: total_res_carryover = 0.0
__pyx_v_total_res_carryover = 0.0;
+2788: priority_contract = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_priority_contract, __pyx_float_0_0);
+2789: secondary_contract = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_secondary_contract, __pyx_float_0_0);
+2790: extra_allocation = 0.0
__pyx_v_extra_allocation = 0.0;
+2791: for contract_obj2 in this_reservoir_all_contract:
if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) { __pyx_t_18 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_18); __pyx_t_14 = 0; __pyx_t_16 = NULL; } else { __pyx_t_14 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_16 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2791, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_18))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2791, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_18, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2791, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_18, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_16(__pyx_t_18); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2791, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_12); } if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2791, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_contract_obj2, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_12)); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2792: total_res_carryover += contract_obj2.tot_carryover
__pyx_v_total_res_carryover = (__pyx_v_total_res_carryover + __pyx_v_contract_obj2->tot_carryover);
+2793: extra_allocation += contract_obj2.tot_new_alloc
__pyx_v_extra_allocation = (__pyx_v_extra_allocation + __pyx_v_contract_obj2->tot_new_alloc);
+2794: if contract_obj2.allocation_priority == 1:
__pyx_t_6 = ((__pyx_v_contract_obj2->allocation_priority == 1) != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L91;
}
+2795: priority_contract += contract_obj2.total*contract_obj2.reduction[wyt]
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_contract_obj2->total); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_contract_obj2->reduction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2795, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_contract_obj2->reduction, __pyx_v_wyt); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = PyNumber_Multiply(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_priority_contract, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_priority_contract, __pyx_t_9); __pyx_t_9 = 0;
+2796: priority_deliveries += contract_obj2.annual_deliveries[wateryear]
if (unlikely(__pyx_v_contract_obj2->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2796, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj2->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_priority_deliveries, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF_SET(__pyx_v_priority_deliveries, __pyx_t_21);
__pyx_t_21 = 0;
2797: else:
+2798: secondary_contract += contract_obj2.total*contract_obj2.reduction[wyt]
/*else*/ {
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj2->total); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2798, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_contract_obj2->reduction == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2798, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_contract_obj2->reduction, __pyx_v_wyt); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2798, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2798, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_secondary_contract, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2798, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF_SET(__pyx_v_secondary_contract, __pyx_t_9);
__pyx_t_9 = 0;
+2799: secondary_deliveries += contract_obj2.annual_deliveries[wateryear]
if (unlikely(__pyx_v_contract_obj2->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2799, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj2->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_secondary_deliveries, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF_SET(__pyx_v_secondary_deliveries, __pyx_t_12);
__pyx_t_12 = 0;
}
__pyx_L91:;
2800: #san luis doesn't have available_storage forecasts, so input from northern model is used
2801: #for state & federal portions
+2802: if reservoir_obj.key == "SLS":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir_obj->key, __pyx_n_u_SLS, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2802, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L92; }
+2803: total_allocation = self.swp_allocation[t] - self.pumping_turnback['SLS'] + extra_allocation - self.allocation_losses['SLS']
if (unlikely(__pyx_v_self->swp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2803, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_self->swp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2803, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->pumping_turnback, __pyx_n_u_SLS); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_extra_allocation); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_18 = PyNumber_Add(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2803, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->allocation_losses, __pyx_n_u_SLS); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_9);
__pyx_t_9 = 0;
+2804: reservoir_obj.reclaimed_carryover[t] = extra_allocation - self.pumping_turnback['SLS']
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_extra_allocation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2804, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->pumping_turnback, __pyx_n_u_SLS); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = PyNumber_Subtract(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_reservoir_obj->reclaimed_carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2804, __pyx_L1_error) } if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->reclaimed_carryover, __pyx_v_t, __pyx_t_18) < 0)) __PYX_ERR(0, 2804, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2805: reservoir_obj.contract_flooded[t] = self.allocation_losses['SLS'] * 1.0
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2805, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->allocation_losses, __pyx_n_u_SLS); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_18, __pyx_float_1_0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (unlikely(__pyx_v_reservoir_obj->contract_flooded == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2805, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->contract_flooded, __pyx_v_t, __pyx_t_12) < 0)) __PYX_ERR(0, 2805, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2806: tot_ind_deliveries = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_float_0_0);
+2807: tot_ind_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_tot_ind_carryover, __pyx_float_0_0);
+2808: tot_ind_turnback = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_tot_ind_turnback, __pyx_float_0_0);
+2809: tot_ind_paper = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_tot_ind_paper, __pyx_float_0_0);
2810:
+2811: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2811, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_14); __Pyx_INCREF(__pyx_t_18); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2811, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_12, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2811, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2812: tot_ind_carryover += district_obj.carryover[contract_obj.name]
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2812, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_9);
__pyx_t_9 = 0;
+2813: tot_ind_deliveries += district_obj.deliveries[contract_obj.name][wateryear]
if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2813, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_9);
__pyx_t_9 = 0;
+2814: tot_ind_turnback += district_obj.turnback_pool[contract_obj.name]
if (unlikely(__pyx_v_district_obj->turnback_pool == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2814, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->turnback_pool, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_18);
__pyx_t_18 = 0;
+2815: tot_ind_paper += district_obj.paper_balance[contract_obj.name]
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2815, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->paper_balance, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_9);
__pyx_t_9 = 0;
+2816: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2816, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2816, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2816, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2817: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2817, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_15); __Pyx_INCREF(__pyx_t_18); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2817, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_18);
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2818: tot_ind_carryover += private_obj.carryover[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2818, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_18, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_18);
__pyx_t_18 = 0;
+2819: tot_ind_deliveries += private_obj.deliveries[district_key][contract_obj.name][wateryear]
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2819, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_18, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_18); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_21);
__pyx_t_21 = 0;
+2820: tot_ind_turnback += private_obj.turnback_pool[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->turnback_pool == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2820, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->turnback_pool, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_18); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_21);
__pyx_t_21 = 0;
+2821: tot_ind_paper += private_obj.paper_balance[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2821, __pyx_L1_error)
}
if (unlikely(!__pyx_v_district_key)) { __Pyx_RaiseUnboundLocalError("district_key"); __PYX_ERR(0, 2821, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->paper_balance, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_9);
__pyx_t_9 = 0;
+2822: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2822, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2822, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2822, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2822, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2823: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2823, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_15); __Pyx_INCREF(__pyx_t_21); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2823, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2824: tot_ind_carryover += private_obj.carryover[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2824, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_18); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_21);
__pyx_t_21 = 0;
+2825: tot_ind_deliveries += private_obj.deliveries[district_key][contract_obj.name][wateryear]
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2825, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_wateryear); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_18);
__pyx_t_18 = 0;
+2826: tot_ind_turnback += private_obj.turnback_pool[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->turnback_pool == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2826, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->turnback_pool, __pyx_v_district_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_18, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_18);
__pyx_t_18 = 0;
+2827: tot_ind_paper += private_obj.paper_balance[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2827, __pyx_L1_error)
}
if (unlikely(!__pyx_v_district_key)) { __Pyx_RaiseUnboundLocalError("district_key"); __PYX_ERR(0, 2827, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->paper_balance, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_9);
__pyx_t_9 = 0;
2828:
2829:
+2830: elif reservoir_obj.key == "SLF":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir_obj->key, __pyx_n_u_SLF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2830, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L92; }
+2831: total_allocation = self.cvp_allocation[t] - self.pumping_turnback['SLF'] + extra_allocation - self.allocation_losses['SLF']
if (unlikely(__pyx_v_self->cvp_allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2831, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_self->cvp_allocation, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2831, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->pumping_turnback, __pyx_n_u_SLF); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = PyNumber_Subtract(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_extra_allocation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_Add(__pyx_t_18, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2831, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->allocation_losses, __pyx_n_u_SLF); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = PyNumber_Subtract(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_18);
__pyx_t_18 = 0;
+2832: reservoir_obj.reclaimed_carryover[t] = extra_allocation - self.pumping_turnback['SLF']
__pyx_t_18 = PyFloat_FromDouble(__pyx_v_extra_allocation); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2832, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->pumping_turnback, __pyx_n_u_SLF); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyNumber_Subtract(__pyx_t_18, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_reservoir_obj->reclaimed_carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2832, __pyx_L1_error) } if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->reclaimed_carryover, __pyx_v_t, __pyx_t_12) < 0)) __PYX_ERR(0, 2832, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2833: reservoir_obj.contract_flooded[t] = self.allocation_losses['SLF'] * 1.0
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2833, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->allocation_losses, __pyx_n_u_SLF); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2833, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_12, __pyx_float_1_0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2833, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__pyx_v_reservoir_obj->contract_flooded == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2833, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_reservoir_obj->contract_flooded, __pyx_v_t, __pyx_t_9) < 0)) __PYX_ERR(0, 2833, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2834:
+2835: elif reservoir_obj.key == 'MIL':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir_obj->key, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2835, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L92; }
+2836: if m > 9 or m < 3:
__pyx_t_9 = PyObject_RichCompare(__pyx_v_m, __pyx_int_9, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2836, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L104_bool_binop_done; } __pyx_t_9 = PyObject_RichCompare(__pyx_v_m, __pyx_int_3, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2836, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = __pyx_t_6; __pyx_L104_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L103; }
+2837: total_allocation = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_float_0_0);
2838: else:
+2839: if contract_obj.allocation_priority == 1:
/*else*/ {
__pyx_t_3 = ((__pyx_v_contract_obj->allocation_priority == 1) != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L106;
}
+2840: total_allocation = reservoir_obj.available_storage[t] + contract_obj.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
if (unlikely(__pyx_v_reservoir_obj->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2840, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_contract_obj->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2840, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_18 = PyNumber_Add(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_10 = 0.0;
__pyx_t_23 = __pyx_v_total_res_carryover;
if (((__pyx_t_10 > __pyx_t_23) != 0)) {
__pyx_t_24 = __pyx_t_10;
} else {
__pyx_t_24 = __pyx_t_23;
}
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_9);
__pyx_t_9 = 0;
2841: else:
+2842: total_allocation = reservoir_obj.available_storage[t] + priority_deliveries + contract_obj.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
/*else*/ {
if (unlikely(__pyx_v_reservoir_obj->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2842, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_Add(__pyx_t_9, __pyx_v_priority_deliveries); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_v_contract_obj->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2842, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = PyNumber_Add(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_24 = 0.0;
__pyx_t_10 = __pyx_v_total_res_carryover;
if (((__pyx_t_24 > __pyx_t_10) != 0)) {
__pyx_t_23 = __pyx_t_24;
} else {
__pyx_t_23 = __pyx_t_10;
}
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_Subtract(__pyx_t_18, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_12);
__pyx_t_12 = 0;
}
__pyx_L106:;
}
__pyx_L103:;
2843:
2844: else:
2845: #otherwise, total allocation at the reservoir is equal to available storage + deliveries - the total carryover storage
+2846: if contract_obj.allocation_priority == 1:
/*else*/ {
__pyx_t_3 = ((__pyx_v_contract_obj->allocation_priority == 1) != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L107;
}
+2847: total_allocation = reservoir_obj.available_storage[t] + contract_obj.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
if (unlikely(__pyx_v_reservoir_obj->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2847, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__pyx_v_contract_obj->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2847, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = PyNumber_Add(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_23 = 0.0;
__pyx_t_24 = __pyx_v_total_res_carryover;
if (((__pyx_t_23 > __pyx_t_24) != 0)) {
__pyx_t_10 = __pyx_t_23;
} else {
__pyx_t_10 = __pyx_t_24;
}
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyNumber_Subtract(__pyx_t_18, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_12);
__pyx_t_12 = 0;
2848: else:
+2849: total_allocation = reservoir_obj.available_storage[t] + priority_deliveries + contract_obj.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
/*else*/ {
if (unlikely(__pyx_v_reservoir_obj->available_storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2849, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->available_storage, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Add(__pyx_t_12, __pyx_v_priority_deliveries); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__pyx_v_contract_obj->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2849, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_18 = PyNumber_Add(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_10 = 0.0;
__pyx_t_23 = __pyx_v_total_res_carryover;
if (((__pyx_t_10 > __pyx_t_23) != 0)) {
__pyx_t_24 = __pyx_t_10;
} else {
__pyx_t_24 = __pyx_t_23;
}
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_9);
__pyx_t_9 = 0;
}
__pyx_L107:;
}
__pyx_L92:;
2850:
+2851: contract_obj.calc_allocation(t, dowy, total_allocation, priority_contract, secondary_contract, wyt)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_contract_obj), __pyx_n_s_calc_allocation); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_v_t, __pyx_v_dowy, __pyx_v_total_allocation, __pyx_v_priority_contract, __pyx_v_secondary_contract, __pyx_v_wyt}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2851, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_v_t, __pyx_v_dowy, __pyx_v_total_allocation, __pyx_v_priority_contract, __pyx_v_secondary_contract, __pyx_v_wyt}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2851, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_21 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_18) { __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_18); __pyx_t_18 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_total_allocation); __Pyx_GIVEREF(__pyx_v_total_allocation); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_total_allocation); __Pyx_INCREF(__pyx_v_priority_contract); __Pyx_GIVEREF(__pyx_v_priority_contract); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_v_priority_contract); __Pyx_INCREF(__pyx_v_secondary_contract); __Pyx_GIVEREF(__pyx_v_secondary_contract); PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_v_secondary_contract); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_v_wyt); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_21, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2852:
2853: ##Find contract 'storage pools' - how much water is available right now
2854: ##san luis federal storage is divided between 3 water contracts - cvpdelta, exchange, and crossvalley
2855: ##millerton storage is divided between 2 water contracts - friant1 and friant2
+2856: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2856, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2856, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2856, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2856, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
2857: #for a specific contract, look up the reservoir it is stored in
+2858: reservoir_obj = self.contract_reservoir[contract_obj.key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2858, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2858, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_9));
__pyx_t_9 = 0;
2859: #then find all the contracts associated with that reservoir
+2860: this_reservoir_all_contract = self.reservoir_contract[reservoir_obj.key]
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2860, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_9);
__pyx_t_9 = 0;
+2861: tot_res_deliveries = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_tot_res_deliveries, __pyx_float_0_0);
+2862: priority_storage = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_priority_storage, __pyx_float_0_0);
+2863: tot_res_carryover = 0.0
__pyx_v_tot_res_carryover = 0.0;
+2864: for contract_obj2 in this_reservoir_all_contract:
if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) { __pyx_t_9 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0; __pyx_t_16 = NULL; } else { __pyx_t_14 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_16 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2864, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2864, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2864, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_16(__pyx_t_9); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2864, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_12); } if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2864, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_contract_obj2, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_12)); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2865: #if some contracts at a reservoir have 'priority' over storage space
2866: #(i.e., cvpdelta and exchange contracts have priority over the federal
2867: #san luis storage), calculate the total allocation volume that has priority
2868: #in a reservoir
+2869: tot_res_deliveries += contract_obj2.annual_deliveries[wateryear]
if (unlikely(__pyx_v_contract_obj2->annual_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2869, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj2->annual_deliveries, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2869, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_tot_res_deliveries, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2869, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_res_deliveries, __pyx_t_21);
__pyx_t_21 = 0;
+2870: tot_res_carryover += contract_obj2.tot_carryover
__pyx_v_tot_res_carryover = (__pyx_v_tot_res_carryover + __pyx_v_contract_obj2->tot_carryover);
+2871: if contract_obj2.storage_priority == 1:
__pyx_t_3 = ((__pyx_v_contract_obj2->storage_priority == 1) != 0);
if (__pyx_t_3) {
/* … */
}
+2872: priority_storage += contract_obj2.allocation[t]
if (unlikely(__pyx_v_contract_obj2->allocation == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2872, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj2->allocation, __pyx_v_t); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_priority_storage, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_priority_storage, __pyx_t_12);
__pyx_t_12 = 0;
2873: ##contract storage pools are the existing storage plus all the deliveries
2874: ##that have been made so far in that water year - so 'storage pool' is all
2875: ##the contract water that has already come into the reservoir, even water
2876: ##that has already been delivered
+2877: total_water = reservoir_obj.S[t] - reservoir_obj.dead_pool + tot_res_deliveries - tot_res_carryover
if (unlikely(__pyx_v_reservoir_obj->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2877, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->S, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_reservoir_obj->dead_pool); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = PyNumber_Subtract(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Add(__pyx_t_21, __pyx_v_tot_res_deliveries); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_tot_res_carryover); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2877, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_water, __pyx_t_9);
__pyx_t_9 = 0;
2878: #find the storage pool for each contract
+2879: contract_obj.find_storage_pool(t, wateryear, total_water, reservoir_obj.S[t], priority_storage)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_contract_obj), __pyx_n_s_find_storage_pool); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(__pyx_v_reservoir_obj->S == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2879, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_reservoir_obj->S, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[6] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_v_total_water, __pyx_t_12, __pyx_v_priority_storage}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[6] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_v_total_water, __pyx_t_12, __pyx_v_priority_storage}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_5 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_18) { __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_18); __pyx_t_18 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_total_water); __Pyx_GIVEREF(__pyx_v_total_water); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_total_water); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_v_priority_storage); __Pyx_GIVEREF(__pyx_v_priority_storage); PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_8, __pyx_v_priority_storage); __pyx_t_12 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2880:
2881: ##Update District Contracts
2882: #self.assign_uncontrolled(t, wateryear)
+2883: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2883, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2883, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2883, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2883, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2884: contract_obj.projected_carryover = 0.0
__pyx_v_contract_obj->projected_carryover = 0.0;
+2885: contract_obj.running_carryover = 0.0
__pyx_v_contract_obj->running_carryover = 0.0;
2886: #for each contract in each district, what is the district's share of (i) currently available (surface water) storage and (ii) expected remaining allocation
+2887: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2887, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2887, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2887, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2888: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2888, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2888, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2888, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2888, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2889: next_year_carryover, this_year_carryover = district_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2889, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2889, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2889, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_22 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[9] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear, __pyx_t_12, __pyx_t_18, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_7, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[9] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear, __pyx_t_12, __pyx_t_18, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_7, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 8+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_17 = PyTuple_New(8+__pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_22) { __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_22); __pyx_t_22 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_8, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_8, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_8, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_8, __pyx_v_contract_obj->type); __pyx_t_12 = 0; __pyx_t_18 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_17, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2889, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_17 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_17); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L119_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_17 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_17)) goto __pyx_L119_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_7), 2) < 0) __PYX_ERR(0, 2889, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L120_unpacking_done; __pyx_L119_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2889, __pyx_L1_error) __pyx_L120_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_17); __pyx_t_17 = 0;
+2890: contract_obj.projected_carryover += next_year_carryover
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj->projected_carryover); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_v_next_year_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_v_contract_obj->projected_carryover = __pyx_t_24;
+2891: contract_obj.running_carryover += this_year_carryover
__pyx_t_17 = PyFloat_FromDouble(__pyx_v_contract_obj->running_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_v_contract_obj->running_carryover = __pyx_t_24;
2892:
+2893: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2893, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2893, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2893, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2894: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2894, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2894, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2894, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2894, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2895: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2895, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_17 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_15); __Pyx_INCREF(__pyx_t_17); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2895, __pyx_L1_error)
#else
__pyx_t_17 = PySequence_ITEM(__pyx_t_21, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_17);
__pyx_t_17 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2896: # district_obj = self.district_keys[district_key]
+2897: next_year_carryover, this_year_carryover = private_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type, district_key, self.district_keys[district_key].project_contract, self.district_keys[district_key].rights)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2897, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2897, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2897, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2897, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2897, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_rights); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[12] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear, __pyx_t_7, __pyx_t_2, __pyx_t_18, __pyx_v_contract_obj->name, __pyx_t_12, __pyx_v_contract_obj->type, __pyx_v_district_key, __pyx_t_1, __pyx_t_25}; __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[12] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear, __pyx_t_7, __pyx_t_2, __pyx_t_18, __pyx_v_contract_obj->name, __pyx_t_12, __pyx_v_contract_obj->type, __pyx_v_district_key, __pyx_t_1, __pyx_t_25}; __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else #endif { __pyx_t_26 = PyTuple_New(11+__pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_22) { __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_22); __pyx_t_22 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_8, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_8, __pyx_t_18); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_8, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_8, __pyx_v_contract_obj->type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_26, 8+__pyx_t_8, __pyx_v_district_key); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_26, 9+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_26, 10+__pyx_t_8, __pyx_t_25); __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_18 = 0; __pyx_t_12 = 0; __pyx_t_1 = 0; __pyx_t_25 = 0; __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_26, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_17))) || (PyList_CheckExact(__pyx_t_17))) { PyObject* sequence = __pyx_t_17; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2897, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_26 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_26); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_26 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); #endif __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else { Py_ssize_t index = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_25)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_13(__pyx_t_25); if (unlikely(!__pyx_t_5)) goto __pyx_L127_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_26 = __pyx_t_13(__pyx_t_25); if (unlikely(!__pyx_t_26)) goto __pyx_L127_unpacking_failed; __Pyx_GOTREF(__pyx_t_26); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_25), 2) < 0) __PYX_ERR(0, 2897, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; goto __pyx_L128_unpacking_done; __pyx_L127_unpacking_failed:; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2897, __pyx_L1_error) __pyx_L128_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_26); __pyx_t_26 = 0;
+2898: contract_obj.running_carryover += this_year_carryover
__pyx_t_17 = PyFloat_FromDouble(__pyx_v_contract_obj->running_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_26); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_v_contract_obj->running_carryover = __pyx_t_24;
2899: #next_year_carryover = x.apply_paper_balance(y.name, wyt, wateryear)
2900: #y.projected_carryover += next_year_carryover
2901:
+2902: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2902, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2902, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2902, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2903: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2903, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2903, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2903, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2904: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2904, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_26 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2904, __pyx_L1_error)
#else
__pyx_t_26 = PySequence_ITEM(__pyx_t_21, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2904, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_26);
__pyx_t_26 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2905: # district_obj = self.district_keys[district_key]
+2906: next_year_carryover, this_year_carryover = private_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type, district_key, self.district_keys[district_key].project_contract, self.district_keys[district_key].rights)
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2906, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2906, __pyx_L1_error) } __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2906, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2906, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2906, __pyx_L1_error) } __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[12] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_t_5, __pyx_t_25, __pyx_t_1, __pyx_v_contract_obj->name, __pyx_t_12, __pyx_v_contract_obj->type, __pyx_v_district_key, __pyx_t_2, __pyx_t_7}; __pyx_t_26 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[12] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_t_5, __pyx_t_25, __pyx_t_1, __pyx_v_contract_obj->name, __pyx_t_12, __pyx_v_contract_obj->type, __pyx_v_district_key, __pyx_t_2, __pyx_t_7}; __pyx_t_26 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_8, 11+__pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_22 = PyTuple_New(11+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_18) { __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_18); __pyx_t_18 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_25); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_1); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_22, 7+__pyx_t_8, __pyx_v_contract_obj->type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_22, 8+__pyx_t_8, __pyx_v_district_key); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_22, 9+__pyx_t_8, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 10+__pyx_t_8, __pyx_t_7); __pyx_t_5 = 0; __pyx_t_25 = 0; __pyx_t_1 = 0; __pyx_t_12 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_22, NULL); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_26))) || (PyList_CheckExact(__pyx_t_26))) { PyObject* sequence = __pyx_t_26; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2906, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_17 = PyList_GET_ITEM(sequence, 0); __pyx_t_22 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(__pyx_t_22); #else __pyx_t_17 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_22 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); #endif __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_17 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_17)) goto __pyx_L135_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); index = 1; __pyx_t_22 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_22)) goto __pyx_L135_unpacking_failed; __Pyx_GOTREF(__pyx_t_22); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_7), 2) < 0) __PYX_ERR(0, 2906, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L136_unpacking_done; __pyx_L135_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2906, __pyx_L1_error) __pyx_L136_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_22); __pyx_t_22 = 0;
+2907: contract_obj.running_carryover += this_year_carryover
__pyx_t_26 = PyFloat_FromDouble(__pyx_v_contract_obj->running_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2907, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_contract_obj->running_carryover = __pyx_t_24;
2908: #next_year_carryover = x.apply_paper_balance_urban(y.name, wyt, wateryear)
2909: #y.projected_carryover += next_year_carryover
2910:
2911: ##summation of all projected contracts for each water district (total surface water expected)
+2912: counter = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_counter = __pyx_int_0;
2913: #find the 'in leiu' recovery capacity at each in-leiu recharge district using this day's irrigation demand
2914: #recovery is based on the surface water allocations for the in-leiu bank (i.e., the surface water that they give their banking partners
2915: #when the partners want to recover banked water
+2916: self.update_leiu_capacity()
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_leiu_capacity); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_20 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_9); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
2917:
+2918: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2918, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2918, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2918, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
2919: #district can request recovery of their banked water
+2920: if district_obj.key == 'SOB':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2920, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L139; }
+2921: target_eoy = 50.0
__pyx_v_target_eoy = 50.0;
2922: else:
+2923: target_eoy = 0.0
/*else*/ {
__pyx_v_target_eoy = 0.0;
}
__pyx_L139:;
+2924: district_obj.open_recovery(t, dowy, wateryear, target_eoy)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_target_eoy); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_26 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_26, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_22}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_26, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_22}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_17 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_8, __pyx_t_22); __pyx_t_22 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_17, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2925:
2926: ##Recover Banked Water
+2927: use_tolerance = 0
__pyx_v_use_tolerance = 0;
+2928: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2928, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2928, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2928, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2929: private_obj.open_recovery(t, dowy, wateryear, self.number_years, wyt, use_tolerance, 0.0)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_22 = __Pyx_PyInt_From_long(__pyx_v_use_tolerance); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_26 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[8] = {__pyx_t_26, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_17, __pyx_v_wyt, __pyx_t_22, __pyx_float_0_0}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[8] = {__pyx_t_26, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_17, __pyx_v_wyt, __pyx_t_22, __pyx_float_0_0}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_v_wyt); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_float_0_0); __pyx_t_17 = 0; __pyx_t_22 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2930:
+2931: use_tolerance = 0
__pyx_v_use_tolerance = 0;
+2932: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2932, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2932, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 2932, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
2933: # for xx in private_obj.district_list:
2934: # district_obj = self.district_keys[xx]
2935: # total_contract = self.district_keys[xx].project_contract['tableA']
2936: # if dowy > 273:
2937: # #additional_carryover = private_obj.get_urban_recovery_target(expected_pumping, total_contract, wateryear, dowy, year_index, wyt, 90, t, xx)
2938: # additional_carryover = 0.0
2939: # else:
2940: # additional_carryover = 0.0
+2941: additional_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+2942: private_obj.open_recovery(t, dowy, wateryear, self.number_years, wyt, use_tolerance, additional_carryover)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_22 = __Pyx_PyInt_From_long(__pyx_v_use_tolerance); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_17 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_7, __pyx_v_wyt, __pyx_t_22, __pyx_v_additional_carryover}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_7, __pyx_v_wyt, __pyx_t_22, __pyx_v_additional_carryover}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_26 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_8, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_8, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_8, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_8, __pyx_v_wyt); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_v_additional_carryover); __Pyx_GIVEREF(__pyx_v_additional_carryover); PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_8, __pyx_v_additional_carryover); __pyx_t_7 = 0; __pyx_t_22 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_26, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2943:
+2944: flow_type = "recovery"
__Pyx_INCREF(__pyx_n_u_recovery);
__pyx_v_flow_type = __pyx_n_u_recovery;
2945: #initialize the recover variables at the bank
+2946: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2946, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2946, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2946, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, __pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2947: for participant_key in waterbank_obj.participant_list:
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) { __pyx_t_21 = __pyx_t_9; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0; __pyx_t_16 = NULL; } else { __pyx_t_14 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_16 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2947, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_21))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2947, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_21)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2947, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_16(__pyx_t_21); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2947, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_9); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2948: waterbank_obj.recovery_use[participant_key] = 0.0#how much of the recovery capacity was used by the account holder
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_participant_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2949: #same but for 'in leiu' banks
+2950: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2950, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2950, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2950, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2950, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2951: leiu_obj.tot_leiu_recovery_use = 0.0
__pyx_v_leiu_obj->tot_leiu_recovery_use = 0.0;
+2952: for participant_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2952, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2952, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2952, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2953: leiu_obj.recovery_use[participant_key] = 0.0
if (unlikely(__pyx_v_leiu_obj->recovery_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2953, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_leiu_obj->recovery_use, __pyx_v_participant_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2953, __pyx_L1_error)
+2954: leiu_obj.bank_deliveries[participant_key] = 0.0
if (unlikely(__pyx_v_leiu_obj->bank_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2954, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_leiu_obj->bank_deliveries, __pyx_v_participant_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2954, __pyx_L1_error)
2955:
2956: #recover banked groundwater
2957: #only looking at GW exchanges for a few contracts
+2958: if self.metropolitan.use_recovery > 0.0:
__pyx_t_6 = ((__pyx_v_self->metropolitan->use_recovery > 0.0) != 0);
if (__pyx_t_6) {
/* … */
}
+2959: exchanger_list = [self.kerntulare, self.pixley, self.lowertule]
__pyx_t_20 = PyList_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_INCREF(((PyObject *)__pyx_v_self->kerntulare)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kerntulare)); PyList_SET_ITEM(__pyx_t_20, 0, ((PyObject *)__pyx_v_self->kerntulare)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pixley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pixley)); PyList_SET_ITEM(__pyx_t_20, 1, ((PyObject *)__pyx_v_self->pixley)); __Pyx_INCREF(((PyObject *)__pyx_v_self->lowertule)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->lowertule)); PyList_SET_ITEM(__pyx_t_20, 2, ((PyObject *)__pyx_v_self->lowertule)); __pyx_v_exchanger_list = ((PyObject*)__pyx_t_20); __pyx_t_20 = 0;
+2960: exchange_max = min(self.arvin.inleiubanked['MET'], self.metropolitan.dailydemand_start['SOC']*self.metropolitan.use_recovery)
if (unlikely(__pyx_v_self->metropolitan->dailydemand_start == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2960, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->dailydemand_start, __pyx_n_u_SOC); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_self->metropolitan->use_recovery); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_20, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_v_self->arvin->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2960, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->arvin->inleiubanked, __pyx_n_u_MET); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyObject_RichCompare(__pyx_t_9, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2960, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2960, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_20 = __pyx_t_9;
} else {
__Pyx_INCREF(__pyx_t_21);
__pyx_t_20 = __pyx_t_21;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_20;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_exchange_max = __pyx_t_9;
__pyx_t_9 = 0;
+2961: exchange_request = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_exchange_request = __pyx_float_0_0;
+2962: for district_obj in exchanger_list:
__pyx_t_9 = __pyx_v_exchanger_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_20); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2962, __pyx_L1_error) #else __pyx_t_20 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); #endif if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2962, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_20)); __pyx_t_20 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2963: exchange_request += max(district_obj.projected_supply['cvc'], 0.0)
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2963, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_cvc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_22 = PyObject_RichCompare(__pyx_t_26, __pyx_t_20, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_6) {
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_21 = __pyx_t_22;
__pyx_t_22 = 0;
} else {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_21 = __pyx_t_20;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyNumber_InPlaceAdd(__pyx_v_exchange_request, __pyx_t_21); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_exchange_request, __pyx_t_20);
__pyx_t_20 = 0;
+2964: if exchange_request > 0.0:
__pyx_t_9 = PyObject_RichCompare(__pyx_v_exchange_request, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2964, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2964, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_6) { /* … */ }
+2965: delivered_exchange = min(exchange_max, exchange_request)
__Pyx_INCREF(__pyx_v_exchange_request); __pyx_t_9 = __pyx_v_exchange_request; __Pyx_INCREF(__pyx_v_exchange_max); __pyx_t_20 = __pyx_v_exchange_max; __pyx_t_22 = PyObject_RichCompare(__pyx_t_9, __pyx_t_20, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2965, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2965, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (__pyx_t_6) { __Pyx_INCREF(__pyx_t_9); __pyx_t_21 = __pyx_t_9; } else { __Pyx_INCREF(__pyx_t_20); __pyx_t_21 = __pyx_t_20; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_t_21; __Pyx_INCREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_v_delivered_exchange = __pyx_t_9; __pyx_t_9 = 0;
+2966: self.arvin.inleiubanked['MET'] -= delivered_exchange
if (unlikely(__pyx_v_self->arvin->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2966, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->arvin->inleiubanked);
__pyx_t_27 = __pyx_v_self->arvin->inleiubanked;
__Pyx_INCREF(__pyx_n_u_MET);
__pyx_t_28 = __pyx_n_u_MET;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2966, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = PyNumber_InPlaceSubtract(__pyx_t_9, __pyx_v_delivered_exchange); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2966, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_21) < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2967: self.metropolitan.paper_balance['SOC']['cvc'] += delivered_exchange
if (unlikely(__pyx_v_self->metropolitan->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2967, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->paper_balance, __pyx_n_u_SOC); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_INCREF(__pyx_n_u_cvc);
__pyx_t_28 = __pyx_n_u_cvc;
__pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_t_28); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_v_delivered_exchange); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_28, __pyx_t_20) < 0)) __PYX_ERR(0, 2967, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
2968:
+2969: for district_obj in exchanger_list:
__pyx_t_21 = __pyx_v_exchanger_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_21)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_11); __Pyx_INCREF(__pyx_t_20); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2969, __pyx_L1_error) #else __pyx_t_20 = PySequence_ITEM(__pyx_t_21, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); #endif if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2969, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_20)); __pyx_t_20 = 0; /* … */ } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2970: ind_exchange = delivered_exchange * max(district_obj.projected_supply['cvc'], 0.0)/exchange_request
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2970, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_cvc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_26 = PyObject_RichCompare(__pyx_t_22, __pyx_t_20, Py_GT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_6) {
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_9 = __pyx_t_26;
__pyx_t_26 = 0;
} else {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_9 = __pyx_t_20;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyNumber_Multiply(__pyx_v_delivered_exchange, __pyx_t_9); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_t_20, __pyx_v_exchange_request); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF_SET(__pyx_v_ind_exchange, __pyx_t_9);
__pyx_t_9 = 0;
+2971: self.arvin.inleiubanked[district_obj.key] += ind_exchange
if (unlikely(__pyx_v_self->arvin->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2971, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->arvin->inleiubanked);
__pyx_t_27 = __pyx_v_self->arvin->inleiubanked;
__Pyx_INCREF(__pyx_v_district_obj->key);
__pyx_t_28 = __pyx_v_district_obj->key;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2971, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_v_ind_exchange); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2971, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_20) < 0)) __PYX_ERR(0, 2971, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2972: district_obj.paper_balance['cvc'] -= ind_exchange
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2972, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->paper_balance);
__pyx_t_27 = __pyx_v_district_obj->paper_balance;
__Pyx_INCREF(__pyx_n_u_cvc);
__pyx_t_28 = __pyx_n_u_cvc;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2972, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_9 = PyNumber_InPlaceSubtract(__pyx_t_20, __pyx_v_ind_exchange); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2972, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_9) < 0)) __PYX_ERR(0, 2972, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
2973:
+2974: self.canal_contract['caa'] = [self.swpdelta]#only want to 'paper' exchange swp contracts
__pyx_t_21 = PyList_New(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_21, 0, ((PyObject *)__pyx_v_self->swpdelta)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2974, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_21) < 0)) __PYX_ERR(0, 2974, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2975: for canal_obj in [self.calaqueduct, self.fkc, self.kernriverchannel]:
__pyx_t_21 = PyTuple_New(3); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->calaqueduct)); PyTuple_SET_ITEM(__pyx_t_21, 0, ((PyObject *)__pyx_v_self->calaqueduct)); __Pyx_INCREF(((PyObject *)__pyx_v_self->fkc)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->fkc)); PyTuple_SET_ITEM(__pyx_t_21, 1, ((PyObject *)__pyx_v_self->fkc)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriverchannel)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriverchannel)); PyTuple_SET_ITEM(__pyx_t_21, 2, ((PyObject *)__pyx_v_self->kernriverchannel)); __pyx_t_9 = __pyx_t_21; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; for (;;) { if (__pyx_t_11 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2975, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_21)); __pyx_t_21 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2976: for reservoir_obj in self.canal_reservoir[canal_obj.name]:
if (unlikely(__pyx_v_self->canal_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2976, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_reservoir, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
__pyx_t_20 = __pyx_t_21; __Pyx_INCREF(__pyx_t_20); __pyx_t_14 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_14 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_16 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2976, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_20))) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2976, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
} else {
if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 2976, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_20, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
}
} else {
__pyx_t_21 = __pyx_t_16(__pyx_t_20);
if (unlikely(!__pyx_t_21)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 2976, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_21);
}
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 2976, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+2977: if reservoir_obj.min_daily_uncontrolled < reservoir_obj.flood_flow_min or reservoir_obj.fcr > 0.0:
__pyx_t_3 = ((__pyx_v_reservoir_obj->min_daily_uncontrolled < __pyx_v_reservoir_obj->flood_flow_min) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_6 = __pyx_t_3;
goto __pyx_L163_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_reservoir_obj->fcr > 0.0) != 0);
__pyx_t_6 = __pyx_t_3;
__pyx_L163_bool_binop_done:;
if (__pyx_t_6) {
/* … */
}
+2978: for contract_obj in self.canal_contract[canal_obj.name]:
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2978, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
__pyx_t_26 = __pyx_t_21; __Pyx_INCREF(__pyx_t_26); __pyx_t_15 = 0;
__pyx_t_29 = NULL;
} else {
__pyx_t_15 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_29 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2978, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
for (;;) {
if (likely(!__pyx_t_29)) {
if (likely(PyList_CheckExact(__pyx_t_26))) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_26)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_21); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2978, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
} else {
if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_21); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2978, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
}
} else {
__pyx_t_21 = __pyx_t_29(__pyx_t_26);
if (unlikely(!__pyx_t_21)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 2978, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_21);
}
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 2978, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2979: exchange_contract = contract_obj.name
__pyx_t_21 = __pyx_v_contract_obj->name;
__Pyx_INCREF(__pyx_t_21);
__Pyx_XDECREF_SET(__pyx_v_exchange_contract, ((PyObject*)__pyx_t_21));
__pyx_t_21 = 0;
+2980: delivery_key = exchange_contract + "_banked"
__pyx_t_21 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_exchange_contract, __pyx_n_u_banked); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_XDECREF_SET(__pyx_v_delivery_key, ((PyObject*)__pyx_t_21)); __pyx_t_21 = 0;
+2981: self.set_canal_direction(flow_type)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_21 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_7, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2982: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2982, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_21);
__pyx_t_21 = 0;
+2983: total_canal_demand = self.search_canal_demand(dowy,canal_obj, "none", canal_obj.name, 'normal', flow_type, wateryear, 'recovery', {})
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2983, __pyx_L1_error) __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2983, __pyx_L1_error) __pyx_t_22 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_7 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_8, __pyx_v_canal_obj, __pyx_n_u_none, ((PyObject*)__pyx_t_21), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_30, __pyx_n_u_recovery, ((PyObject*)__pyx_t_22)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0;
+2984: self.set_canal_direction(flow_type)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_22 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_26 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_22, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2985: self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]#reset california aqueduct contracts to be all san luis contracts
__pyx_t_9 = PyList_New(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self->swpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_9, 3, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2985, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_9) < 0)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2986:
2987: #if self.xvc.locked == 1 and self.calaqueduct.flow_directions['recharge']['xvc'] == 'reverse':
+2988: total_current_balance = max(self.buenavista.current_balance['kern'], 0.0)
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_self->buenavista->current_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2988, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->buenavista->current_balance, __pyx_n_u_kern); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_26, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2988, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2988, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_6) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_20 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_20 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_20;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_total_current_balance = __pyx_t_9;
__pyx_t_9 = 0;
+2989: total_projected_supply = max(self.buenavista.projected_supply['kern'], 0.0)
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_self->buenavista->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2989, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->buenavista->projected_supply, __pyx_n_u_kern); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_26 = PyObject_RichCompare(__pyx_t_7, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2989, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2989, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_6) {
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_20 = __pyx_t_26;
__pyx_t_26 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_20 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_20;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_total_projected_supply = __pyx_t_9;
__pyx_t_9 = 0;
2990: #conservative_estimate = max(min((dowy- 211.0)/(273.0 - 211.0), 1.0), 0.0)
+2991: conservative_estimate = 1.0
__pyx_v_conservative_estimate = 1.0;
+2992: available_exchange_kern = max(min(conservative_estimate*total_projected_supply,total_current_balance), 0.0)
__pyx_t_24 = 0.0; __Pyx_INCREF(__pyx_v_total_current_balance); __pyx_t_9 = __pyx_v_total_current_balance; __pyx_t_20 = PyFloat_FromDouble(__pyx_v_conservative_estimate); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_26 = PyNumber_Multiply(__pyx_t_20, __pyx_v_total_projected_supply); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_7 = PyObject_RichCompare(__pyx_t_9, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2992, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_6) { __Pyx_INCREF(__pyx_t_9); __pyx_t_20 = __pyx_t_9; } else { __Pyx_INCREF(__pyx_t_26); __pyx_t_20 = __pyx_t_26; } __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_INCREF(__pyx_t_20); __pyx_t_9 = __pyx_t_20; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_7 = PyObject_RichCompare(__pyx_t_26, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_6) { __pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = __pyx_t_7; __pyx_t_7 = 0; } else { __Pyx_INCREF(__pyx_t_9); __pyx_t_20 = __pyx_t_9; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_t_20; __Pyx_INCREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_available_exchange_kern = __pyx_t_9; __pyx_t_9 = 0;
+2993: requester_list = [self.cawelo, self.ID4, self.rosedale]
__pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_self->cawelo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cawelo)); PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self->cawelo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->ID4)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ID4)); PyList_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->ID4)); __Pyx_INCREF(((PyObject *)__pyx_v_self->rosedale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->rosedale)); PyList_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_self->rosedale)); __pyx_v_requester_list = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+2994: total_request = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_total_request = __pyx_float_0_0;
+2995: for district_obj in requester_list:
__pyx_t_9 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_20); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2995, __pyx_L1_error) #else __pyx_t_20 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); #endif if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 2995, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_20)); __pyx_t_20 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2996: total_request += max(min(district_obj.dailydemand_start[0] + district_obj.recharge_carryover['tableA'], district_obj.dailydemand[0] + district_obj.recharge_carryover['tableA'], district_obj.current_balance['tableA'], district_obj.projected_supply['tableA']),0.0)
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(__pyx_v_district_obj->recharge_carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->recharge_carryover, __pyx_n_u_tableA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_26 = PyNumber_Add(__pyx_t_20, __pyx_t_7); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_v_district_obj->current_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->current_balance, __pyx_n_u_tableA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_tableA); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(__pyx_v_district_obj->dailydemand_start == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand_start, __pyx_int_0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (unlikely(__pyx_v_district_obj->recharge_carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2996, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->recharge_carryover, __pyx_n_u_tableA); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_17 = PyNumber_Add(__pyx_t_22, __pyx_t_21); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_22 = PyObject_RichCompare(__pyx_t_26, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2996, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_26);
__pyx_t_21 = __pyx_t_26;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_21 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_INCREF(__pyx_t_21);
__pyx_t_17 = __pyx_t_21;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_22 = PyObject_RichCompare(__pyx_t_7, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2996, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_7);
__pyx_t_21 = __pyx_t_7;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_21 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_INCREF(__pyx_t_21);
__pyx_t_17 = __pyx_t_21;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_22 = PyObject_RichCompare(__pyx_t_20, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2996, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_21 = __pyx_t_20;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_21 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_INCREF(__pyx_t_21);
__pyx_t_26 = __pyx_t_21;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_7, __pyx_t_26, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_6) {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = __pyx_t_20;
__pyx_t_20 = 0;
} else {
__Pyx_INCREF(__pyx_t_26);
__pyx_t_21 = __pyx_t_26;
}
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_26 = PyNumber_InPlaceAdd(__pyx_v_total_request, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF_SET(__pyx_v_total_request, __pyx_t_26);
__pyx_t_26 = 0;
+2997: if available_exchange_kern > 0.0:
__pyx_t_9 = PyObject_RichCompare(__pyx_v_available_exchange_kern, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2997, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L169; }
+2998: request_fraction = min(available_exchange_kern/total_request, 1.0)
__pyx_t_24 = 1.0;
__pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_v_available_exchange_kern, __pyx_v_total_request); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_21, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2998, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2998, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_6) {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_26 = __pyx_t_20;
__pyx_t_20 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_26 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_26;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_v_request_fraction = __pyx_t_9;
__pyx_t_9 = 0;
2999: else:
+3000: request_fraction = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_request_fraction = __pyx_float_0_0;
}
__pyx_L169:;
+3001: for district_obj in requester_list:
__pyx_t_9 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_26 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_26); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3001, __pyx_L1_error) #else __pyx_t_26 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); #endif if (!(likely(((__pyx_t_26) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_26, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3001, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_26)); __pyx_t_26 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3002: exchanged_value = request_fraction * max(min(district_obj.dailydemand_start[0] + district_obj.recharge_carryover['tableA'], district_obj.dailydemand[0] + district_obj.recharge_carryover['tableA'], district_obj.current_balance['tableA'], district_obj.projected_supply['tableA']),0.0)
__pyx_t_24 = 0.0;
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (unlikely(__pyx_v_district_obj->recharge_carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->recharge_carryover, __pyx_n_u_tableA); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = PyNumber_Add(__pyx_t_26, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(__pyx_v_district_obj->current_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->current_balance, __pyx_n_u_tableA); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_tableA); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (unlikely(__pyx_v_district_obj->dailydemand_start == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand_start, __pyx_int_0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_district_obj->recharge_carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3002, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->recharge_carryover, __pyx_n_u_tableA); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_22 = PyNumber_Add(__pyx_t_7, __pyx_t_17); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_7 = PyObject_RichCompare(__pyx_t_21, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3002, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_21);
__pyx_t_17 = __pyx_t_21;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_17 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_22 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_7 = PyObject_RichCompare(__pyx_t_20, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3002, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_17 = __pyx_t_20;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_17 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_22 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_7 = PyObject_RichCompare(__pyx_t_26, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3002, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_6) {
__Pyx_INCREF(__pyx_t_26);
__pyx_t_17 = __pyx_t_26;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_17 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_21 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_26 = PyObject_RichCompare(__pyx_t_20, __pyx_t_21, Py_GT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_6) {
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_17 = __pyx_t_26;
__pyx_t_26 = 0;
} else {
__Pyx_INCREF(__pyx_t_21);
__pyx_t_17 = __pyx_t_21;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Multiply(__pyx_v_request_fraction, __pyx_t_17); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF_SET(__pyx_v_exchanged_value, __pyx_t_21);
__pyx_t_21 = 0;
+3003: district_obj.paper_balance['kern'] += exchanged_value
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3003, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->paper_balance);
__pyx_t_27 = __pyx_v_district_obj->paper_balance;
__Pyx_INCREF(__pyx_n_u_kern);
__pyx_t_28 = __pyx_n_u_kern;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3003, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3003, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3003, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3003, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_17) < 0)) __PYX_ERR(0, 3003, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3004: district_obj.paper_balance['tableA'] -= exchanged_value
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3004, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->paper_balance);
__pyx_t_27 = __pyx_v_district_obj->paper_balance;
__Pyx_INCREF(__pyx_n_u_tableA);
__pyx_t_28 = __pyx_n_u_tableA;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3004, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_21 = PyNumber_InPlaceSubtract(__pyx_t_17, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3004, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_21) < 0)) __PYX_ERR(0, 3004, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3005: self.buenavista.paper_balance['kern'] -= exchanged_value
if (unlikely(__pyx_v_self->buenavista->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3005, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->buenavista->paper_balance);
__pyx_t_27 = __pyx_v_self->buenavista->paper_balance;
__Pyx_INCREF(__pyx_n_u_kern);
__pyx_t_28 = __pyx_n_u_kern;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3005, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3005, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_17 = PyNumber_InPlaceSubtract(__pyx_t_21, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3005, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3005, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_17) < 0)) __PYX_ERR(0, 3005, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3006: self.buenavista.paper_balance['tableA'] += exchanged_value
if (unlikely(__pyx_v_self->buenavista->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3006, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->buenavista->paper_balance);
__pyx_t_27 = __pyx_v_self->buenavista->paper_balance;
__Pyx_INCREF(__pyx_n_u_tableA);
__pyx_t_28 = __pyx_n_u_tableA;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3006, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3006, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_21) < 0)) __PYX_ERR(0, 3006, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3007: for contract_obj in [self.kernriver, self.swpdelta]:
__pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyTuple_SET_ITEM(__pyx_t_21, 0, ((PyObject *)__pyx_v_self->kernriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyTuple_SET_ITEM(__pyx_t_21, 1, ((PyObject *)__pyx_v_self->swpdelta)); __pyx_t_17 = __pyx_t_21; __Pyx_INCREF(__pyx_t_17); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; for (;;) { if (__pyx_t_14 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3007, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_17, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21)); __pyx_t_21 = 0; /* … */ } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+3008: next_year_carryover, this_year_carryover = district_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_26 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3008, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3008, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3008, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[9] = {__pyx_t_12, __pyx_v_t, __pyx_v_wateryear, __pyx_t_20, __pyx_t_22, __pyx_t_7, __pyx_v_contract_obj->name, __pyx_t_2, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[9] = {__pyx_t_12, __pyx_v_t, __pyx_v_wateryear, __pyx_t_20, __pyx_t_22, __pyx_t_7, __pyx_v_contract_obj->name, __pyx_t_2, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_1 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_30, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_30, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_30, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_30, __pyx_t_7); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_30, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_30, __pyx_t_2); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_30, __pyx_v_contract_obj->type); __pyx_t_20 = 0; __pyx_t_22 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_1, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3008, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_26 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_26 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_26 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; index = 0; __pyx_t_26 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_26)) goto __pyx_L174_unpacking_failed; __Pyx_GOTREF(__pyx_t_26); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L174_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3008, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L175_unpacking_done; __pyx_L174_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3008, __pyx_L1_error) __pyx_L175_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_26); __pyx_t_26 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_1); __pyx_t_1 = 0;
+3009: next_year_carryover, this_year_carryover = self.buenavista.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->buenavista), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3009, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3009, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3009, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[9] = {__pyx_t_20, __pyx_v_t, __pyx_v_wateryear, __pyx_t_26, __pyx_t_2, __pyx_t_7, __pyx_v_contract_obj->name, __pyx_t_22, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[9] = {__pyx_t_20, __pyx_v_t, __pyx_v_wateryear, __pyx_t_26, __pyx_t_2, __pyx_t_7, __pyx_v_contract_obj->name, __pyx_t_22, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_12 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_30, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_30, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_30, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_30, __pyx_t_7); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_30, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_12, 6+__pyx_t_30, __pyx_t_22); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_12, 7+__pyx_t_30, __pyx_v_contract_obj->type); __pyx_t_26 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_22 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3009, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_12 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_22)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_22); if (unlikely(!__pyx_t_1)) goto __pyx_L176_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_12 = __pyx_t_13(__pyx_t_22); if (unlikely(!__pyx_t_12)) goto __pyx_L176_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_22), 2) < 0) __PYX_ERR(0, 3009, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; goto __pyx_L177_unpacking_done; __pyx_L176_unpacking_failed:; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3009, __pyx_L1_error) __pyx_L177_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_next_year_carryover, __pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_this_year_carryover, __pyx_t_12); __pyx_t_12 = 0;
3010:
+3011: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3012: for canal_obj in self.reservoir_canal[self.millerton.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3012, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_self->millerton->key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
__pyx_t_17 = __pyx_t_9; __Pyx_INCREF(__pyx_t_17); __pyx_t_11 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3012, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_17))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3012, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_17, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3012, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_17, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_16(__pyx_t_17);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3012, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3012, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+3013: self.set_canal_direction(flow_type)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_12, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3014:
+3015: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3015, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_9);
__pyx_t_9 = 0;
+3016: total_canal_demand = self.search_canal_demand(dowy, canal_obj, self.millerton.key, canal_obj.name, 'normal', flow_type, wateryear,'delivery', {})
__pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3016, __pyx_L1_error) __pyx_t_9 = __pyx_v_self->millerton->key; __Pyx_INCREF(__pyx_t_9); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3016, __pyx_L1_error) __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_30, __pyx_v_canal_obj, ((PyObject*)__pyx_t_9), ((PyObject*)__pyx_t_21), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_8, __pyx_n_u_delivery, ((PyObject*)__pyx_t_12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+3017: available_flow = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3018: for zz in total_canal_demand:
__pyx_t_14 = 0;
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3018, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_dict_iterator(__pyx_v_total_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_15), (&__pyx_t_8)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3018, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_12;
__pyx_t_12 = 0;
while (1) {
__pyx_t_30 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_15, &__pyx_t_14, &__pyx_t_12, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_30 == 0)) break;
if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(0, 3018, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_12);
__pyx_t_12 = 0;
+3019: available_flow += total_canal_demand[zz]
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3019, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_21);
__pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3020: excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, canal_obj, self.millerton.key, canal_obj.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3020, __pyx_L1_error) __pyx_t_1 = __pyx_v_self->millerton->key; __Pyx_INCREF(__pyx_t_1); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_available_flow); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3020, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_canal_size); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3020, __pyx_L1_error) __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3020, __pyx_L1_error) __pyx_t_12 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_t_8, __pyx_v_canal_obj, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_21), __pyx_t_24, __pyx_t_30, __pyx_t_31, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (likely(__pyx_t_12 != Py_None)) { PyObject* sequence = __pyx_t_12; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3020, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3020, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_1); __pyx_t_1 = 0;
3021:
3022: #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, a.key, z.name, 'normal',flow_type)
3023: #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, a.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
+3024: self.set_canal_direction(flow_type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_12 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_21, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3025:
3026: ##Flood Deliveries - 4 flood sources - Millerton, Isabella, Success, and Kaweah
3027: ##What is the priority for reservoirs getting to use the canals to route flood releases?
3028: ##Note: most of the contracts have provisions that flood flows 'cannot displace' scheduled
3029: ##deliveries (i.e. you can't use flood releases to fill demand that would be met by your contract
3030: ##schedule), so might want to put this AFTER regular delivery routing
+3031: flood_order_list = [self.pineflat, self.success, self.kaweah, self.isabella]
__pyx_t_17 = PyList_New(4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyList_SET_ITEM(__pyx_t_17, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyList_SET_ITEM(__pyx_t_17, 1, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyList_SET_ITEM(__pyx_t_17, 2, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyList_SET_ITEM(__pyx_t_17, 3, ((PyObject *)__pyx_v_self->isabella)); __pyx_v_flood_order_list = ((PyObject*)__pyx_t_17); __pyx_t_17 = 0;
3032: #toggle to enable flood releases to go to districts/banks that don't have a contract w/the reservoir
3033: #only san luis restricts flood releases to contractors only (b/c otherwise they just dont pump)
+3034: overflow_deliveries = 1
__pyx_v_overflow_deliveries = 1;
+3035: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3036: self.set_canal_direction(flow_type)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_17 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+3037: for reservoir_obj in flood_order_list:
__pyx_t_17 = __pyx_v_flood_order_list; __Pyx_INCREF(__pyx_t_17); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_17)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_11); __Pyx_INCREF(__pyx_t_12); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3037, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_17, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 3037, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_12)); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
3038: #if flow is already on a bi-directional canal, it becomes closed to canals going the other direction
3039: #checks the calaqueduct turnout to xvc is used, if not, xvc is open to fkc and kern river
+3040: self.set_canal_direction(flow_type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_12 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_21, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3041: #release flood flows to canals
+3042: self.flood_operations(t, m, dowy, wateryear, reservoir_obj, flow_type, overflow_deliveries, wyt)
__pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_t); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3042, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_m); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3042, __pyx_L1_error) __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3042, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3042, __pyx_L1_error) if (!(likely(PyUnicode_CheckExact(__pyx_v_wyt))||((__pyx_v_wyt) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_wyt)->tp_name), 0))) __PYX_ERR(0, 3042, __pyx_L1_error) ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->flood_operations(__pyx_v_self, __pyx_t_31, __pyx_t_30, __pyx_t_8, __pyx_t_32, __pyx_v_reservoir_obj, __pyx_v_flow_type, __pyx_v_overflow_deliveries, ((PyObject*)__pyx_v_wyt));
3043: #for canal in self.reservoir_canal[reservoir_obj.key]:
3044: #for cnt in self.canal_contract[canal.name]:
3045: #for socal_cont in [self.metropolitan, self.castaic, self.coachella]:
3046: #if cnt.name + '_flood' in socal_cont.deliveries['SOC']:
3047: #if socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] > 0.0:
3048: #socal_cont.deliveries['SOC']['tableA'][wateryear] += socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
3049: #self.pumping_turnback['SLS'] -= socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
3050: #socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] = 0.0
3051: #for socal_cont in [self.socal,]:
3052: #if cnt.name + '_flood' in socal_cont.deliveries:
3053: #if socal_cont.deliveries[cnt.name + '_flood'][wateryear] > 0.0:
3054: #socal_cont.deliveries['tableA'][wateryear] += socal_cont.deliveries[cnt.name + '_flood'][wateryear]
3055: #self.pumping_turnback['SLS'] -= socal_cont.deliveries[cnt.name + '_flood'][wateryear]
3056: #socal_cont.deliveries[cnt.name + '_flood'][wateryear] = 0.0
3057:
+3058: self.set_canal_direction(flow_type)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_17 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
3059:
3060: ##Direct deliveries from surface water sources
+3061: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3062: for reservoir_obj in [self.pineflat, self.success, self.kaweah, self.isabella]:
__pyx_t_17 = PyTuple_New(4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_17, 0, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_17, 1, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_17, 2, ((PyObject *)__pyx_v_self->kaweah)); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_17, 3, ((PyObject *)__pyx_v_self->isabella)); __pyx_t_12 = __pyx_t_17; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; for (;;) { if (__pyx_t_11 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_17); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3062, __pyx_L1_error) #else __pyx_t_17 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_17)); __pyx_t_17 = 0; /* … */ } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3063: for canal_obj in self.reservoir_canal[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3063, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (likely(PyList_CheckExact(__pyx_t_17)) || PyTuple_CheckExact(__pyx_t_17)) {
__pyx_t_1 = __pyx_t_17; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_15 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3063, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_17 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_17); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3063, __pyx_L1_error)
#else
__pyx_t_17 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
#endif
} else {
if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_17); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3063, __pyx_L1_error)
#else
__pyx_t_17 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
#endif
}
} else {
__pyx_t_17 = __pyx_t_16(__pyx_t_1);
if (unlikely(!__pyx_t_17)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3063, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_17);
}
if (!(likely(((__pyx_t_17) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_17, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_17));
__pyx_t_17 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3064: self.set_canal_direction(flow_type)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_17 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_9, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
3065:
+3066: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3066, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_17);
__pyx_t_17 = 0;
+3067: total_canal_demand = self.search_canal_demand(dowy, canal_obj, reservoir_obj.key, canal_obj.name, 'normal', flow_type, wateryear,'delivery', {})
__pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L1_error) __pyx_t_17 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_17); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L1_error) __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_32, __pyx_v_canal_obj, ((PyObject*)__pyx_t_17), ((PyObject*)__pyx_t_21), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_8, __pyx_n_u_delivery, ((PyObject*)__pyx_t_9)); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_22)); __pyx_t_22 = 0;
+3068: available_flow = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3069: for zz in total_canal_demand:
__pyx_t_14 = 0;
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3069, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_v_total_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_19), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_22);
__pyx_t_22 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_32 = __Pyx_dict_iter_next(__pyx_t_22, __pyx_t_19, &__pyx_t_14, &__pyx_t_9, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_32 == 0)) break;
if (unlikely(__pyx_t_32 == -1)) __PYX_ERR(0, 3069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_9);
__pyx_t_9 = 0;
+3070: available_flow += total_canal_demand[zz]
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3070, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_21);
__pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3071: excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, canal_obj, reservoir_obj.key, canal_obj.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3071, __pyx_L1_error) __pyx_t_22 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_22); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_available_flow); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3071, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_canal_size); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3071, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3071, __pyx_L1_error) __pyx_t_9 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_t_8, __pyx_v_canal_obj, ((PyObject*)__pyx_t_22), ((PyObject*)__pyx_t_21), __pyx_t_24, __pyx_t_32, __pyx_t_30, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (likely(__pyx_t_9 != Py_None)) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3071, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_22); #else __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_22 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3071, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_22); __pyx_t_22 = 0;
3072:
3073: #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, reservoir_obj.key, z.name, 'normal',flow_type)
3074: #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, reservoir_obj.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
3075:
+3076: self.set_canal_direction(flow_type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_12 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_9, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3077: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3077, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3077, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3077, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3078: district_obj.demand_days = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_district_obj->demand_days); __Pyx_DECREF(__pyx_v_district_obj->demand_days); __pyx_v_district_obj->demand_days = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3079: district_obj.demand_days['current'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3079, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_current, __pyx_t_1) < 0)) __PYX_ERR(0, 3079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3080: district_obj.demand_days['lookahead'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3080, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_lookahead, __pyx_t_1) < 0)) __PYX_ERR(0, 3080, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3081: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3081, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3081, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3081, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3081, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3082: district_obj.demand_days['current'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3082, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3082, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3083: district_obj.demand_days['lookahead'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3083, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3083, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3083, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3084:
+3085: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3085, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3085, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3085, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3086: private_obj.demand_days = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->demand_days); __Pyx_DECREF(__pyx_v_private_obj->demand_days); __pyx_v_private_obj->demand_days = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3087: private_obj.demand_days['current'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3087, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current, __pyx_t_1) < 0)) __PYX_ERR(0, 3087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3088: private_obj.demand_days['lookahead'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3088, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead, __pyx_t_1) < 0)) __PYX_ERR(0, 3088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3089: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3089, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3089, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3089, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3090: private_obj.demand_days['current'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3090, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3090, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3091: private_obj.demand_days['lookahead'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3091, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3091, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3092:
+3093: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3093, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3093, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3093, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3093, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3094: private_obj.demand_days = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_private_obj->demand_days); __Pyx_DECREF(__pyx_v_private_obj->demand_days); __pyx_v_private_obj->demand_days = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3095: private_obj.demand_days['current'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3095, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current, __pyx_t_1) < 0)) __PYX_ERR(0, 3095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3096: private_obj.demand_days['lookahead'] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3096, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead, __pyx_t_1) < 0)) __PYX_ERR(0, 3096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3097: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3097, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3097, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3097, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3098: private_obj.demand_days['current'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3098, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3098, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3098, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3099: private_obj.demand_days['lookahead'][contract_obj.name] = 0.0
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3099, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3099, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3099, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3100:
+3101: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3101, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3101, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3101, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3102: reservoir_obj = self.contract_reservoir[contract_obj.key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3102, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 3102, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1));
__pyx_t_1 = 0;
+3103: numdays_fillup = reservoir_obj.numdays_fillup['demand']
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3103, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_numdays_fillup, __pyx_t_1);
__pyx_t_1 = 0;
+3104: if int(numdays_fillup) + dowy > 364:
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyNumber_Add(__pyx_t_1, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_9, __pyx_int_364, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L204; }
+3105: demand_days = dowy + int(numdays_fillup) - 364
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyNumber_Add(__pyx_v_dowy, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_9, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_demand_days, __pyx_t_1); __pyx_t_1 = 0;
+3106: for district_obj in self.urban_list:
if (unlikely(__pyx_v_self->urban_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3106, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3106, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3106, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3107: if contract_obj.type == 'contract':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3107, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L207; }
+3108: total_contract = district_obj.project_contract[contract_obj.name]
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3108, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3108, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_9);
__pyx_t_9 = 0;
3109: else:
+3110: total_contract = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
}
__pyx_L207:;
+3111: district_obj.demand_days['lookahead'][contract_obj.name] = district_obj.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, demand_days, 0)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_21 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_int_0}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_int_0}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_17 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_30, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_30, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_expected_pumping); __Pyx_GIVEREF(__pyx_v_expected_pumping); PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_30, __pyx_v_expected_pumping); __Pyx_INCREF(__pyx_v_total_contract); __Pyx_GIVEREF(__pyx_v_total_contract); PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_30, __pyx_v_total_contract); __Pyx_INCREF(__pyx_v_demand_days); __Pyx_GIVEREF(__pyx_v_demand_days); PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_30, __pyx_v_demand_days); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_30, __pyx_int_0); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_17, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3111, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_9) < 0)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3112:
3113: #district_obj.demand_days['lookahead'][contract_obj.name] = np.sum(x.pumping[0][(t-dowy):(t+demand_days-dowy)])/1000.0
+3114: district_obj.demand_days['current'][contract_obj.name] = district_obj.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, m-1)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_17 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_21 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_17}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_17}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif { __pyx_t_7 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_30, __pyx_int_0); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_30, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_expected_pumping); __Pyx_GIVEREF(__pyx_v_expected_pumping); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_30, __pyx_v_expected_pumping); __Pyx_INCREF(__pyx_v_total_contract); __Pyx_GIVEREF(__pyx_v_total_contract); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_30, __pyx_v_total_contract); __Pyx_INCREF(__pyx_v_demand_days); __Pyx_GIVEREF(__pyx_v_demand_days); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_30, __pyx_v_demand_days); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_30, __pyx_t_17); __pyx_t_17 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3114, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_9) < 0)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3115:
+3116: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3116, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3116, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3116, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3117: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3117, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_19); __Pyx_INCREF(__pyx_t_22); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3117, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_9, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3117, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3118: # district_obj = self.district_keys[district_key]
+3119: if contract_obj.type == 'contract':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3119, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L212; }
+3120: total_contract = self.district_keys[district_key].project_contract[contract_obj.name]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3120, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_22);
__pyx_t_22 = 0;
3121: else:
+3122: total_contract = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
}
__pyx_L212:;
+3123: private_obj.demand_days['lookahead'][contract_obj.name] += private_obj.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, demand_days, district_key, 0)
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3123, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_INCREF(__pyx_v_contract_obj->name);
__pyx_t_28 = __pyx_v_contract_obj->name;
__pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_2 = NULL;
__pyx_t_30 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_21, function);
__pyx_t_30 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_21)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_int_0};
__pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_17);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_int_0};
__pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_17);
} else
#endif
{
__pyx_t_26 = PyTuple_New(9+__pyx_t_30); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_2); __pyx_t_2 = NULL;
}
__Pyx_INCREF(__pyx_v_t);
__Pyx_GIVEREF(__pyx_v_t);
PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_30, __pyx_v_t);
__Pyx_INCREF(__pyx_v_dowy);
__Pyx_GIVEREF(__pyx_v_dowy);
PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_30, __pyx_v_dowy);
__Pyx_INCREF(__pyx_v_wateryear);
__Pyx_GIVEREF(__pyx_v_wateryear);
PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_30, __pyx_v_wateryear);
__Pyx_INCREF(__pyx_v_wyt);
__Pyx_GIVEREF(__pyx_v_wyt);
PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_30, __pyx_v_wyt);
__Pyx_INCREF(__pyx_v_expected_pumping);
__Pyx_GIVEREF(__pyx_v_expected_pumping);
PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_30, __pyx_v_expected_pumping);
__Pyx_INCREF(__pyx_v_total_contract);
__Pyx_GIVEREF(__pyx_v_total_contract);
PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_30, __pyx_v_total_contract);
__Pyx_INCREF(__pyx_v_demand_days);
__Pyx_GIVEREF(__pyx_v_demand_days);
PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_30, __pyx_v_demand_days);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_30, __pyx_v_district_key);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_26, 8+__pyx_t_30, __pyx_int_0);
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_26, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_17); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_21) < 0)) __PYX_ERR(0, 3123, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3124: private_obj.demand_days['current'][contract_obj.name] += private_obj.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, district_key, m-1)
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3124, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_INCREF(__pyx_v_contract_obj->name);
__pyx_t_28 = __pyx_v_contract_obj->name;
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_26 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_2 = NULL;
__pyx_t_30 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_30 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_t_26};
__pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_t_26};
__pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(9+__pyx_t_30); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_2); __pyx_t_2 = NULL;
}
__Pyx_INCREF(__pyx_v_t);
__Pyx_GIVEREF(__pyx_v_t);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_30, __pyx_v_t);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_30, __pyx_int_0);
__Pyx_INCREF(__pyx_v_wateryear);
__Pyx_GIVEREF(__pyx_v_wateryear);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_30, __pyx_v_wateryear);
__Pyx_INCREF(__pyx_v_wyt);
__Pyx_GIVEREF(__pyx_v_wyt);
PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_30, __pyx_v_wyt);
__Pyx_INCREF(__pyx_v_expected_pumping);
__Pyx_GIVEREF(__pyx_v_expected_pumping);
PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_30, __pyx_v_expected_pumping);
__Pyx_INCREF(__pyx_v_total_contract);
__Pyx_GIVEREF(__pyx_v_total_contract);
PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_30, __pyx_v_total_contract);
__Pyx_INCREF(__pyx_v_demand_days);
__Pyx_GIVEREF(__pyx_v_demand_days);
PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_30, __pyx_v_demand_days);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_20, 7+__pyx_t_30, __pyx_v_district_key);
__Pyx_GIVEREF(__pyx_t_26);
PyTuple_SET_ITEM(__pyx_t_20, 8+__pyx_t_30, __pyx_t_26);
__pyx_t_26 = 0;
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_20, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_7) < 0)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3125:
3126: else:
+3127: demand_days = int(numdays_fillup)
/*else*/ {
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3127, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_demand_days, __pyx_t_1);
__pyx_t_1 = 0;
+3128: if contract_obj.name == 'tableA':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3128, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L213; }
+3129: lookahead_days = dowy + int(fill_up_cross_swp) - 364
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_fill_up_cross_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyNumber_Add(__pyx_v_dowy, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_9, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_1); __pyx_t_1 = 0;
+3130: elif contract_obj.name == 'cvpdelta' or contract_obj.name == 'exchange':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3130, __pyx_L1_error) __pyx_t_33 = (__pyx_t_6 != 0); if (!__pyx_t_33) { } else { __pyx_t_3 = __pyx_t_33; goto __pyx_L214_bool_binop_done; } __pyx_t_33 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_33 < 0)) __PYX_ERR(0, 3130, __pyx_L1_error) __pyx_t_6 = (__pyx_t_33 != 0); __pyx_t_3 = __pyx_t_6; __pyx_L214_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L213; }
+3131: lookahead_days = dowy + int(fill_up_cross_cvp) - 364
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_fill_up_cross_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyNumber_Add(__pyx_v_dowy, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_9, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_1); __pyx_t_1 = 0;
3132: else:
+3133: lookahead_days = 0
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_int_0);
}
__pyx_L213:;
+3134: for district_obj in self.urban_list:
if (unlikely(__pyx_v_self->urban_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3134, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3134, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3134, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3135: if contract_obj.type == 'contract':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3135, __pyx_L1_error) __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L218; }
+3136: total_contract = district_obj.project_contract[contract_obj.name]
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3136, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3136, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_9);
__pyx_t_9 = 0;
3137: else:
+3138: total_contract = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
}
__pyx_L218:;
3139:
+3140: district_obj.demand_days['current'][contract_obj.name] = district_obj.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, m-1)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_17 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_7}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_7}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_21 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_30, __pyx_int_0); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_30, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_expected_pumping); __Pyx_GIVEREF(__pyx_v_expected_pumping); PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_30, __pyx_v_expected_pumping); __Pyx_INCREF(__pyx_v_total_contract); __Pyx_GIVEREF(__pyx_v_total_contract); PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_30, __pyx_v_total_contract); __Pyx_INCREF(__pyx_v_demand_days); __Pyx_GIVEREF(__pyx_v_demand_days); PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_30, __pyx_v_demand_days); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_30, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_21, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3140, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_9) < 0)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3141: district_obj.demand_days['lookahead'][contract_obj.name]= district_obj.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, lookahead_days, 0)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_21 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_int_0}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_int_0}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_30, 8+__pyx_t_30); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_7 = PyTuple_New(8+__pyx_t_30); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_30, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_30, __pyx_v_dowy); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_30, __pyx_v_wyt); __Pyx_INCREF(__pyx_v_expected_pumping); __Pyx_GIVEREF(__pyx_v_expected_pumping); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_30, __pyx_v_expected_pumping); __Pyx_INCREF(__pyx_v_total_contract); __Pyx_GIVEREF(__pyx_v_total_contract); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_30, __pyx_v_total_contract); __Pyx_INCREF(__pyx_v_lookahead_days); __Pyx_GIVEREF(__pyx_v_lookahead_days); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_30, __pyx_v_lookahead_days); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_30, __pyx_int_0); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_district_obj->demand_days == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3141, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_9) < 0)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3142: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3142, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3142, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3142, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L204:;
+3143: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3143, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_19); __Pyx_INCREF(__pyx_t_22); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3143, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_9, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3143, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3144: # district_obj = self.district_keys[district_key]
+3145: if contract_obj.type == 'contract':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3145, __pyx_L1_error) __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L223; }
+3146: total_contract = self.district_keys[district_key].project_contract[contract_obj.name]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3146, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_22);
__pyx_t_22 = 0;
3147: else:
+3148: total_contract = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
}
__pyx_L223:;
+3149: private_obj.demand_days['current'][contract_obj.name] += private_obj.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, district_key, m-1)
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3149, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_current); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_INCREF(__pyx_v_contract_obj->name);
__pyx_t_28 = __pyx_v_contract_obj->name;
__pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_20 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_26 = NULL;
__pyx_t_30 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
__pyx_t_26 = PyMethod_GET_SELF(__pyx_t_17);
if (likely(__pyx_t_26)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
__Pyx_INCREF(__pyx_t_26);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_17, function);
__pyx_t_30 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_17)) {
PyObject *__pyx_temp[10] = {__pyx_t_26, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_t_20};
__pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
PyObject *__pyx_temp[10] = {__pyx_t_26, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_district_key, __pyx_t_20};
__pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_2 = PyTuple_New(9+__pyx_t_30); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__pyx_t_26) {
__Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_26); __pyx_t_26 = NULL;
}
__Pyx_INCREF(__pyx_v_t);
__Pyx_GIVEREF(__pyx_v_t);
PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_30, __pyx_v_t);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_30, __pyx_int_0);
__Pyx_INCREF(__pyx_v_wateryear);
__Pyx_GIVEREF(__pyx_v_wateryear);
PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_30, __pyx_v_wateryear);
__Pyx_INCREF(__pyx_v_wyt);
__Pyx_GIVEREF(__pyx_v_wyt);
PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_30, __pyx_v_wyt);
__Pyx_INCREF(__pyx_v_expected_pumping);
__Pyx_GIVEREF(__pyx_v_expected_pumping);
PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_30, __pyx_v_expected_pumping);
__Pyx_INCREF(__pyx_v_total_contract);
__Pyx_GIVEREF(__pyx_v_total_contract);
PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_30, __pyx_v_total_contract);
__Pyx_INCREF(__pyx_v_demand_days);
__Pyx_GIVEREF(__pyx_v_demand_days);
PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_30, __pyx_v_demand_days);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_2, 7+__pyx_t_30, __pyx_v_district_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_2, 8+__pyx_t_30, __pyx_t_20);
__pyx_t_20 = 0;
__pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_2, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_21); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_17) < 0)) __PYX_ERR(0, 3149, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3150: private_obj.demand_days['lookahead'][contract_obj.name] += private_obj.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, lookahead_days, district_key, 0)
if (unlikely(__pyx_v_private_obj->demand_days == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3150, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->demand_days, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_INCREF(__pyx_v_contract_obj->name);
__pyx_t_28 = __pyx_v_contract_obj->name;
__pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_2 = NULL;
__pyx_t_30 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_30 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_v_district_key, __pyx_int_0};
__pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_21);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_v_district_key, __pyx_int_0};
__pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_30, 9+__pyx_t_30); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_21);
} else
#endif
{
__pyx_t_20 = PyTuple_New(9+__pyx_t_30); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_2); __pyx_t_2 = NULL;
}
__Pyx_INCREF(__pyx_v_t);
__Pyx_GIVEREF(__pyx_v_t);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_30, __pyx_v_t);
__Pyx_INCREF(__pyx_v_dowy);
__Pyx_GIVEREF(__pyx_v_dowy);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_30, __pyx_v_dowy);
__Pyx_INCREF(__pyx_v_wateryear);
__Pyx_GIVEREF(__pyx_v_wateryear);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_30, __pyx_v_wateryear);
__Pyx_INCREF(__pyx_v_wyt);
__Pyx_GIVEREF(__pyx_v_wyt);
PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_30, __pyx_v_wyt);
__Pyx_INCREF(__pyx_v_expected_pumping);
__Pyx_GIVEREF(__pyx_v_expected_pumping);
PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_30, __pyx_v_expected_pumping);
__Pyx_INCREF(__pyx_v_total_contract);
__Pyx_GIVEREF(__pyx_v_total_contract);
PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_30, __pyx_v_total_contract);
__Pyx_INCREF(__pyx_v_lookahead_days);
__Pyx_GIVEREF(__pyx_v_lookahead_days);
PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_30, __pyx_v_lookahead_days);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_20, 7+__pyx_t_30, __pyx_v_district_key);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_20, 8+__pyx_t_30, __pyx_int_0);
__pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_20, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_21); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_7) < 0)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3151:
3152:
3153: #Find district banking needs
+3154: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3154, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3154, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3154, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3155: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3155, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_9); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3155, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3156: # contract_object = self.contract_keys[contract_key]
+3157: reservoir = self.contract_reservoir[self.contract_keys[contract_key].key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3157, __pyx_L1_error)
}
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3157, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_9);
__pyx_t_9 = 0;
+3158: if contract_key == 'tableA':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L228; }
+3159: lookahead_days = fill_up_cross_swp
__Pyx_INCREF(__pyx_v_fill_up_cross_swp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3160: carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
__pyx_t_24 = 999.9;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_7, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_3) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3160, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_9 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_9 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_22);
__pyx_t_22 = 0;
+3161: elif contract_key == 'cvpdelta' or contract_key == 'exchange' or contract_key == 'cvc':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3161, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L229_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3161, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L229_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3161, __pyx_L1_error) __pyx_t_3 = __pyx_t_6; __pyx_L229_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L228; }
+3162: lookahead_days = fill_up_cross_cvp
__Pyx_INCREF(__pyx_v_fill_up_cross_cvp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
+3163: carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
__pyx_t_24 = 999.9;
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_21, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_3) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_22 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_22 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_22;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_9);
__pyx_t_9 = 0;
+3164: elif contract_key == 'kings':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_kings, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L228; }
+3165: lookahead_days = min(reservoir.numdays_fillup['lookahead'], max(365.0 - dowy, 0.0))
__pyx_t_24 = 0.0;
__pyx_t_9 = __Pyx_PyFloat_SubtractCObj(__pyx_float_365_0, __pyx_v_dowy, 365.0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_7, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_3) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_22 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_22 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_INCREF(__pyx_t_22);
__pyx_t_9 = __pyx_t_22;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_7 = PyObject_RichCompare(__pyx_t_9, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3165, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3165, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_3) {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_22 = __pyx_t_9;
} else {
__Pyx_INCREF(__pyx_t_21);
__pyx_t_22 = __pyx_t_21;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_22;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_9);
__pyx_t_9 = 0;
+3166: carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
__pyx_t_24 = 999.9;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_21, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_3) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_9 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_22);
__pyx_t_22 = 0;
3167: else:
+3168: lookahead_days = reservoir.numdays_fillup['lookahead']
/*else*/ {
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_9);
__pyx_t_9 = 0;
+3169: carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
__pyx_t_24 = 999.9;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_7, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_3) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_24); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_9 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_22);
__pyx_t_9 = __pyx_t_22;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_22);
__pyx_t_22 = 0;
}
__pyx_L228:;
+3170: additional_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
3171:
+3172: district_obj.open_recharge(t,m-1,da,wateryear,year_index,self.days_in_month, carryover_days, lookahead_days, self.contract_keys[contract_key].tot_carryover - self.contract_keys[contract_key].annual_deliveries[wateryear], contract_key, wyt, self.contract_turnouts[contract_key], 0.0, self.contract_keys[contract_key].allocation_priority)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (unlikely(__pyx_v_self->contract_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3172, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_self->contract_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3172, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_Subtract(__pyx_t_17, __pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3172, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_turnouts, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->contract_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3172, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[15] = {__pyx_t_17, __pyx_v_t, __pyx_t_21, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_carryover_days, __pyx_v_lookahead_days, __pyx_t_20, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_7, __pyx_float_0_0, __pyx_t_2}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_30, 14+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[15] = {__pyx_t_17, __pyx_v_t, __pyx_t_21, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_v_carryover_days, __pyx_v_lookahead_days, __pyx_t_20, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_7, __pyx_float_0_0, __pyx_t_2}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_30, 14+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_26 = PyTuple_New(14+__pyx_t_30); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_30, __pyx_v_t); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_30, __pyx_t_21); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_30, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_30, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_30, __pyx_v_self->days_in_month); __Pyx_INCREF(__pyx_v_carryover_days); __Pyx_GIVEREF(__pyx_v_carryover_days); PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_30, __pyx_v_carryover_days); __Pyx_INCREF(__pyx_v_lookahead_days); __Pyx_GIVEREF(__pyx_v_lookahead_days); PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_30, __pyx_v_lookahead_days); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_26, 8+__pyx_t_30, __pyx_t_20); __Pyx_INCREF(__pyx_v_contract_key); __Pyx_GIVEREF(__pyx_v_contract_key); PyTuple_SET_ITEM(__pyx_t_26, 9+__pyx_t_30, __pyx_v_contract_key); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_26, 10+__pyx_t_30, __pyx_v_wyt); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 11+__pyx_t_30, __pyx_t_7); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_26, 12+__pyx_t_30, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_26, 13+__pyx_t_30, __pyx_t_2); __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_26, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3173:
+3174: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3174, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3174, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3174, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3174, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3175: for contract_key in private_obj.contract_list:
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3175, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3175, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3176: # contract_object = self.contract_keys[contract_key]
+3177: reservoir_obj = self.contract_reservoir[self.contract_keys[contract_key].key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3177, __pyx_L1_error)
}
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3177, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_t_9); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_22) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_22, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 3177, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_22));
__pyx_t_22 = 0;
+3178: if contract_key == 'tableA':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3178, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L236; }
+3179: lookahead_days = fill_up_cross_swp
__Pyx_INCREF(__pyx_v_fill_up_cross_swp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3180: elif contract_key == 'cvpdelta' or contract_key == 'exchange' or contract_key == 'cvc':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3180, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L237_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3180, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L237_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3180, __pyx_L1_error) __pyx_t_3 = __pyx_t_6; __pyx_L237_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L236; }
+3181: lookahead_days = fill_up_cross_cvp
__Pyx_INCREF(__pyx_v_fill_up_cross_cvp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
3182: else:
+3183: lookahead_days = reservoir_obj.numdays_fillup['demand']
/*else*/ {
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3183, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
__pyx_t_22 = 0;
}
__pyx_L236:;
3184:
+3185: additional_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
3186: #additional_carryover += private_obj.contract_carryover_list[xx][y]
+3187: private_obj.open_recharge(t,m-1,da,wateryear,year_index,self.days_in_month, reservoir_obj.numdays_fillup['demand'], lookahead_days, contract_key, wyt, self.contract_turnouts[contract_key], additional_carryover, self.contract_keys[contract_key].allocation_priority)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_26 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3187, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3187, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_turnouts, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->contract_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3187, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[14] = {__pyx_t_20, __pyx_v_t, __pyx_t_26, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_t_2, __pyx_v_lookahead_days, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_7, __pyx_v_additional_carryover, __pyx_t_21}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_30, 13+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[14] = {__pyx_t_20, __pyx_v_t, __pyx_t_26, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_t_2, __pyx_v_lookahead_days, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_7, __pyx_v_additional_carryover, __pyx_t_21}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_30, 13+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif { __pyx_t_17 = PyTuple_New(13+__pyx_t_30); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_30, __pyx_v_t); __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_30, __pyx_t_26); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_30, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_30, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_30, __pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_30, __pyx_t_2); __Pyx_INCREF(__pyx_v_lookahead_days); __Pyx_GIVEREF(__pyx_v_lookahead_days); PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_30, __pyx_v_lookahead_days); __Pyx_INCREF(__pyx_v_contract_key); __Pyx_GIVEREF(__pyx_v_contract_key); PyTuple_SET_ITEM(__pyx_t_17, 8+__pyx_t_30, __pyx_v_contract_key); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_17, 9+__pyx_t_30, __pyx_v_wyt); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_17, 10+__pyx_t_30, __pyx_t_7); __Pyx_INCREF(__pyx_v_additional_carryover); __Pyx_GIVEREF(__pyx_v_additional_carryover); PyTuple_SET_ITEM(__pyx_t_17, 11+__pyx_t_30, __pyx_v_additional_carryover); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_17, 12+__pyx_t_30, __pyx_t_21); __pyx_t_26 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_21 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_17, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3188:
+3189: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3189, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3189, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3190: for contract_key in private_obj.contract_list:
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3190, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3190, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3191: # contract_object = self.contract_keys[contract_key]
+3192: reservoir_obj = self.contract_reservoir[self.contract_keys[contract_key].key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3192, __pyx_L1_error)
}
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3192, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_t_9); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_22) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_22, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 3192, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_22));
__pyx_t_22 = 0;
+3193: if contract_key == 'tableA':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3193, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L244; }
+3194: lookahead_days = fill_up_cross_swp
__Pyx_INCREF(__pyx_v_fill_up_cross_swp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3195: elif contract_key == 'cvpdelta' or contract_key == 'exchange' or contract_key == 'cvc':
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3195, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L245_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3195, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L245_bool_binop_done; } __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3195, __pyx_L1_error) __pyx_t_3 = __pyx_t_6; __pyx_L245_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L244; }
+3196: lookahead_days = fill_up_cross_cvp
__Pyx_INCREF(__pyx_v_fill_up_cross_cvp); __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
3197: else:
+3198: lookahead_days = reservoir_obj.numdays_fillup['demand']
/*else*/ {
if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3198, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
__pyx_t_22 = 0;
}
__pyx_L244:;
3199:
+3200: additional_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+3201: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3201, __pyx_L1_error)
}
__pyx_t_22 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_22); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_19); __Pyx_INCREF(__pyx_t_9); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3201, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_22, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3201, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3202: if t + lookahead_days < self.T:
__pyx_t_9 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_self->T); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_21 = PyObject_RichCompare(__pyx_t_9, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L250; }
+3203: additional_carryover += np.sum(private_obj.pumping[district_key][(t+365-dowy): int(t+lookahead_days) ])/1000.0
__Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_sum); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(__pyx_v_private_obj->pumping == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3203, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_26 = __Pyx_PyNumber_Int(__pyx_t_7); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_t_17, 0, 0, &__pyx_t_2, &__pyx_t_26, NULL, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_21 = (__pyx_t_26) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_26, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_7); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_21, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_additional_carryover, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_t_21); __pyx_t_21 = 0;
3204: else:
+3205: if lookahead_days > 365:
/*else*/ {
__pyx_t_21 = PyObject_RichCompare(__pyx_v_lookahead_days, __pyx_int_365, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3205, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3205, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L251;
}
+3206: additional_carryover= 999.9
__Pyx_INCREF(__pyx_float_999_9); __Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_float_999_9);
3207: else:
+3208: additional_carryover += np.sum(private_obj.pumping[district_key][(t-dowy): int(t + lookahead_days - 365) ])/1000.0
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_sum); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_v_private_obj->pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3208, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_26 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_2 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_17 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetSlice(__pyx_t_9, 0, 0, &__pyx_t_26, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
}
}
__pyx_t_21 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_2, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_17);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_21, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_additional_carryover, __pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_t_21);
__pyx_t_21 = 0;
}
__pyx_L251:;
}
__pyx_L250:;
+3209: private_obj.open_recharge(t, m-1, da, wateryear, year_index, self.days_in_month, reservoir_obj.numdays_fillup['demand'], lookahead_days, contract_key, wyt, self.contract_turnouts[contract_key], 0.0, self.contract_keys[contract_key].allocation_priority)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_reservoir_obj->numdays_fillup == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3209, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_reservoir_obj->numdays_fillup, __pyx_n_u_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_self->contract_turnouts == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3209, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_turnouts, __pyx_v_contract_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->contract_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3209, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_30 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_30 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[14] = {__pyx_t_26, __pyx_v_t, __pyx_t_7, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_t_17, __pyx_v_lookahead_days, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_2, __pyx_float_0_0, __pyx_t_9}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_30, 13+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[14] = {__pyx_t_26, __pyx_v_t, __pyx_t_7, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_self->days_in_month, __pyx_t_17, __pyx_v_lookahead_days, __pyx_v_contract_key, __pyx_v_wyt, __pyx_t_2, __pyx_float_0_0, __pyx_t_9}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_30, 13+__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_20 = PyTuple_New(13+__pyx_t_30); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_30, __pyx_v_t); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_30, __pyx_t_7); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_30, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_30, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_year_index); __Pyx_GIVEREF(__pyx_v_year_index); PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_30, __pyx_v_year_index); __Pyx_INCREF(__pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_v_self->days_in_month); PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_30, __pyx_v_self->days_in_month); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_30, __pyx_t_17); __Pyx_INCREF(__pyx_v_lookahead_days); __Pyx_GIVEREF(__pyx_v_lookahead_days); PyTuple_SET_ITEM(__pyx_t_20, 7+__pyx_t_30, __pyx_v_lookahead_days); __Pyx_INCREF(__pyx_v_contract_key); __Pyx_GIVEREF(__pyx_v_contract_key); PyTuple_SET_ITEM(__pyx_t_20, 8+__pyx_t_30, __pyx_v_contract_key); __Pyx_INCREF(__pyx_v_wyt); __Pyx_GIVEREF(__pyx_v_wyt); PyTuple_SET_ITEM(__pyx_t_20, 9+__pyx_t_30, __pyx_v_wyt); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_20, 10+__pyx_t_30, __pyx_t_2); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_20, 11+__pyx_t_30, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_20, 12+__pyx_t_30, __pyx_t_9); __pyx_t_7 = 0; __pyx_t_17 = 0; __pyx_t_2 = 0; __pyx_t_9 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_20, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3210:
3211: ##Deliveries for banking
+3212: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3213: for reservoir_obj in [self.isabella, self.pineflat, self.success, self.kaweah]:
__pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(((PyObject *)__pyx_v_self->isabella)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->isabella)); PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_self->isabella)); __Pyx_INCREF(((PyObject *)__pyx_v_self->pineflat)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pineflat)); PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_v_self->pineflat)); __Pyx_INCREF(((PyObject *)__pyx_v_self->success)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->success)); PyTuple_SET_ITEM(__pyx_t_12, 2, ((PyObject *)__pyx_v_self->success)); __Pyx_INCREF(((PyObject *)__pyx_v_self->kaweah)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kaweah)); PyTuple_SET_ITEM(__pyx_t_12, 3, ((PyObject *)__pyx_v_self->kaweah)); __pyx_t_1 = __pyx_t_12; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (__pyx_t_11 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_12); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3213, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_12)); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3214: for canal_obj in self.reservoir_canal[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3214, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
__pyx_t_22 = __pyx_t_12; __Pyx_INCREF(__pyx_t_22); __pyx_t_15 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_15 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_16 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3214, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_22))) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_15); __Pyx_INCREF(__pyx_t_12); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3214, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_22, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
} else {
if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_15); __Pyx_INCREF(__pyx_t_12); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3214, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_22, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
}
} else {
__pyx_t_12 = __pyx_t_16(__pyx_t_22);
if (unlikely(!__pyx_t_12)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3214, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_12);
}
if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3214, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_12));
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3215: self.set_canal_direction(flow_type)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_12 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3216:
+3217: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3217, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3217, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_12);
__pyx_t_12 = 0;
+3218: total_canal_demand = self.search_canal_demand(dowy, canal_obj, reservoir_obj.key, canal_obj.name, 'normal',flow_type,wateryear,'banking', {})
__pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3218, __pyx_L1_error) __pyx_t_12 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_12); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3218, __pyx_L1_error) __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_9 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_30, __pyx_v_canal_obj, ((PyObject*)__pyx_t_12), ((PyObject*)__pyx_t_21), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_32, __pyx_n_u_banking, ((PyObject*)__pyx_t_20)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
+3219: available_flow = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3220: for zz in total_canal_demand:
__pyx_t_19 = 0;
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3220, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_dict_iterator(__pyx_v_total_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_32)); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_20;
__pyx_t_20 = 0;
while (1) {
__pyx_t_30 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_14, &__pyx_t_19, &__pyx_t_20, NULL, NULL, __pyx_t_32);
if (unlikely(__pyx_t_30 == 0)) break;
if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(0, 3220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_20);
__pyx_t_20 = 0;
+3221: available_flow += total_canal_demand[zz]
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3221, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_21);
__pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3222: excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, canal_obj, reservoir_obj.key, canal_obj.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'banking')
__pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3222, __pyx_L1_error) __pyx_t_9 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_9); __pyx_t_21 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_21); __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_available_flow); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3222, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_canal_size); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3222, __pyx_L1_error) __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3222, __pyx_L1_error) __pyx_t_20 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_t_32, __pyx_v_canal_obj, ((PyObject*)__pyx_t_9), ((PyObject*)__pyx_t_21), __pyx_t_24, __pyx_t_30, __pyx_t_8, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (likely(__pyx_t_20 != Py_None)) { PyObject* sequence = __pyx_t_20; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3222, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3222, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_9); __pyx_t_9 = 0;
3223:
+3224: self.set_canal_direction(flow_type)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3225:
3226:
3227: #toggle to enable flood releases to go to districts/banks that don't have a contract w/the reservoir
3228: #only san luis restricts flood releases to contractors only (b/c otherwise they just dont pump)
+3229: overflow_deliveries = 1
__pyx_v_overflow_deliveries = 1;
+3230: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3231: self.set_canal_direction(flow_type)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3232: #if flow is already on a bi-directional canal, it becomes closed to canals going the other direction
3233: #checks the calaqueduct turnout to xvc is used, if not, xvc is open to fkc and kern river
+3234: self.set_canal_direction(flow_type)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3235: #release flood flows to canals
+3236: self.flood_operations(t, m, dowy, wateryear, self.millerton, flow_type, overflow_deliveries, wyt)
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_t); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_m); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error) __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error) __pyx_t_1 = ((PyObject *)__pyx_v_self->millerton); __Pyx_INCREF(__pyx_t_1); if (!(likely(PyUnicode_CheckExact(__pyx_v_wyt))||((__pyx_v_wyt) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_wyt)->tp_name), 0))) __PYX_ERR(0, 3236, __pyx_L1_error) ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->flood_operations(__pyx_v_self, __pyx_t_8, __pyx_t_30, __pyx_t_32, __pyx_t_31, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1), __pyx_v_flow_type, __pyx_v_overflow_deliveries, ((PyObject*)__pyx_v_wyt)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3237: self.set_canal_direction(flow_type)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3238: #for canal in self.reservoir_canal[self.millerton.key]:
3239: #for cnt in self.canal_contract[canal.name]:
3240: #for socal_cont in [self.metropolitan, self.castaic, self.coachella]:
3241: #if cnt.name + '_flood' in socal_cont.deliveries['SOC']:
3242: #if socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] > 0.0:
3243: #socal_cont.deliveries['SOC']['tableA'][wateryear] += socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
3244: #self.pumping_turnback['SLS'] -= socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
3245: #socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] = 0.0
3246: #for socal_cont in [self.socal,]:
3247: #if cnt.name + '_flood' in socal_cont.deliveries:
3248: #if socal_cont.deliveries[cnt.name + '_flood'][wateryear] > 0.0:
3249: #socal_cont.deliveries['tableA'][wateryear] += socal_cont.deliveries[cnt.name + '_flood'][wateryear]
3250: #self.pumping_turnback['SLS'] -= socal_cont.deliveries[cnt.name + '_flood'][wateryear]
3251: #socal_cont.deliveries[cnt.name + '_flood'][wateryear] = 0.0
3252:
3253:
+3254: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3255: for canal_obj in self.reservoir_canal[self.sanluis.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3255, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_self->sanluis->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_22 = __pyx_t_1; __Pyx_INCREF(__pyx_t_22); __pyx_t_11 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_16 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3255, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_22))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3255, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_22, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3255, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_22, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_16(__pyx_t_22);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3255, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3255, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3256: self.set_canal_direction(flow_type)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_9, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3257:
+3258: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3258, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_1);
__pyx_t_1 = 0;
+3259: total_canal_demand = self.search_canal_demand(dowy, canal_obj, self.sanluis.key, canal_obj.name, 'normal', flow_type, wateryear,'delivery', {})
__pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3259, __pyx_L1_error) __pyx_t_1 = __pyx_v_self->sanluis->key; __Pyx_INCREF(__pyx_t_1); __pyx_t_20 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_20); __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3259, __pyx_L1_error) __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_31, __pyx_v_canal_obj, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_20), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_32, __pyx_n_u_delivery, ((PyObject*)__pyx_t_9)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_21)); __pyx_t_21 = 0;
+3260: available_flow = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3261: for zz in total_canal_demand:
__pyx_t_15 = 0;
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3261, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_v_total_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_32)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_21);
__pyx_t_21 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_31 = __Pyx_dict_iter_next(__pyx_t_21, __pyx_t_14, &__pyx_t_15, &__pyx_t_9, NULL, NULL, __pyx_t_32);
if (unlikely(__pyx_t_31 == 0)) break;
if (unlikely(__pyx_t_31 == -1)) __PYX_ERR(0, 3261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_9);
__pyx_t_9 = 0;
+3262: available_flow += total_canal_demand[zz]
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3262, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_20 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_9); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_20);
__pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3263: excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, canal_obj, self.sanluis.key, canal_obj.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
__pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3263, __pyx_L1_error) __pyx_t_21 = __pyx_v_self->sanluis->key; __Pyx_INCREF(__pyx_t_21); __pyx_t_20 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_20); __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_available_flow); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3263, __pyx_L1_error) __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_canal_size); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3263, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3263, __pyx_L1_error) __pyx_t_9 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_t_32, __pyx_v_canal_obj, ((PyObject*)__pyx_t_21), ((PyObject*)__pyx_t_20), __pyx_t_24, __pyx_t_31, __pyx_t_30, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (likely(__pyx_t_9 != Py_None)) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3263, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_21 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_21); #else __pyx_t_20 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3263, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_21); __pyx_t_21 = 0;
3264:
3265: #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, a.key, z.name, 'normal',flow_type)
3266: #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, a.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
+3267: self.set_canal_direction(flow_type)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_9 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_20, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3268:
3269: #Flood releases
3270: #article21 releases from san luis - state
+3271: self.canal_contract['caa'] = [self.swpdelta]#for swp flood releases, only swp contracts are considered
__pyx_t_22 = PyList_New(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_22, 0, ((PyObject *)__pyx_v_self->swpdelta)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3271, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_22) < 0)) __PYX_ERR(0, 3271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3272: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3273: overflow_deliveries = 0#no flood deliveries to non-contractors in swp or cvp
__pyx_v_overflow_deliveries = 0;
+3274: self.set_canal_direction(flow_type)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_22 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_21, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3275: self.flood_operations(t, m, dowy, wateryear, self.sanluisstate, flow_type, overflow_deliveries, wyt)
__pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_t); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L1_error) __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_m); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L1_error) __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L1_error) __pyx_t_22 = ((PyObject *)__pyx_v_self->sanluisstate); __Pyx_INCREF(__pyx_t_22); if (!(likely(PyUnicode_CheckExact(__pyx_v_wyt))||((__pyx_v_wyt) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_wyt)->tp_name), 0))) __PYX_ERR(0, 3275, __pyx_L1_error) ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->flood_operations(__pyx_v_self, __pyx_t_30, __pyx_t_31, __pyx_t_32, __pyx_t_8, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_22), __pyx_v_flow_type, __pyx_v_overflow_deliveries, ((PyObject*)__pyx_v_wyt)); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3276:
3277: #flood releases from san luis - federal
+3278: self.canal_contract['caa'] = [self.cvpdelta, self.cvpexchange, self.crossvalley]
__pyx_t_22 = PyList_New(3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_22, 0, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_22, 1, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_22, 2, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3278, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_22) < 0)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3279: self.set_canal_direction(flow_type)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_22 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_21, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3280: self.flood_operations(t, m, dowy, wateryear, self.sanluisfederal, flow_type, overflow_deliveries, wyt)
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_t); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3280, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_m); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3280, __pyx_L1_error) __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3280, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3280, __pyx_L1_error) __pyx_t_22 = ((PyObject *)__pyx_v_self->sanluisfederal); __Pyx_INCREF(__pyx_t_22); if (!(likely(PyUnicode_CheckExact(__pyx_v_wyt))||((__pyx_v_wyt) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_wyt)->tp_name), 0))) __PYX_ERR(0, 3280, __pyx_L1_error) ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->flood_operations(__pyx_v_self, __pyx_t_8, __pyx_t_32, __pyx_t_31, __pyx_t_30, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_22), __pyx_v_flow_type, __pyx_v_overflow_deliveries, ((PyObject*)__pyx_v_wyt)); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3281: self.set_canal_direction(flow_type)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_22 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_21, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3282: self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]#reset california aqueduct contracts to be all san luis contracts
__pyx_t_22 = PyList_New(4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyList_SET_ITEM(__pyx_t_22, 0, ((PyObject *)__pyx_v_self->swpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpdelta)); PyList_SET_ITEM(__pyx_t_22, 1, ((PyObject *)__pyx_v_self->cvpdelta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cvpexchange)); PyList_SET_ITEM(__pyx_t_22, 2, ((PyObject *)__pyx_v_self->cvpexchange)); __Pyx_INCREF(((PyObject *)__pyx_v_self->crossvalley)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->crossvalley)); PyList_SET_ITEM(__pyx_t_22, 3, ((PyObject *)__pyx_v_self->crossvalley)); if (unlikely(__pyx_v_self->canal_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3282, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->canal_contract, __pyx_n_u_caa, __pyx_t_22) < 0)) __PYX_ERR(0, 3282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3283:
3284: #if self.sanluisstate.min_daily_uncontrolled > 0.0:
3285: #if self.metropolitan.annualdemand['SOC'] > self.metropolitan.projected_supply['SOC']['tableA']:
3286: #this_day_contract_deliveries = max(min(self.metropolitan.dailydemand_start['SOC'] - self.metropolitan.dailydemand['SOC'], self.metropolitan.deliveries['SOC']['tableA'][wateryear], self.metropolitan.annualdemand['SOC'] - self.metropolitan.projected_supply['SOC']['tableA']), 0.0)
3287: #self.metropolitan.deliveries['SOC']['tableA_flood'][wateryear] += this_day_contract_deliveries
3288: #self.metropolitan.deliveries['SOC']['tableA'][wateryear] -= this_day_contract_deliveries
3289:
3290: ##Deliveries for banking
+3291: flow_type = "recharge"
__Pyx_INCREF(__pyx_n_u_recharge); __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3292: for reservoir_obj in [self.sanluis, self.millerton]:
__pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(((PyObject *)__pyx_v_self->sanluis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sanluis)); PyTuple_SET_ITEM(__pyx_t_22, 0, ((PyObject *)__pyx_v_self->sanluis)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_22, 1, ((PyObject *)__pyx_v_self->millerton)); __pyx_t_9 = __pyx_t_22; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; for (;;) { if (__pyx_t_11 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_22); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3292, __pyx_L1_error) #else __pyx_t_22 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_22)); __pyx_t_22 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3293: for canal_obj in self.reservoir_canal[reservoir_obj.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3293, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
__pyx_t_21 = __pyx_t_22; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_14 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_16 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3293, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_21))) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_22); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3293, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
} else {
if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_22); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3293, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
}
} else {
__pyx_t_22 = __pyx_t_16(__pyx_t_21);
if (unlikely(!__pyx_t_22)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3293, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_22);
}
if (!(likely(((__pyx_t_22) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_22, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_22));
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3294: self.set_canal_direction(flow_type)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_22 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3295:
+3296: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3296, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_22);
__pyx_t_22 = 0;
+3297: total_canal_demand = self.search_canal_demand(dowy, canal_obj, reservoir_obj.key, canal_obj.name, 'normal',flow_type,wateryear,'banking', {})
__pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3297, __pyx_L1_error) __pyx_t_22 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_22); __pyx_t_20 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_20); __pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3297, __pyx_L1_error) __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_t_30, __pyx_v_canal_obj, ((PyObject*)__pyx_t_22), ((PyObject*)__pyx_t_20), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_t_31, __pyx_n_u_banking, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, ((PyObject*)__pyx_t_12)); __pyx_t_12 = 0;
+3298: available_flow = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3299: for zz in total_canal_demand:
__pyx_t_15 = 0;
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3299, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_total_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_19), (&__pyx_t_31)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_12);
__pyx_t_12 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_30 = __Pyx_dict_iter_next(__pyx_t_12, __pyx_t_19, &__pyx_t_15, &__pyx_t_1, NULL, NULL, __pyx_t_31);
if (unlikely(__pyx_t_30 == 0)) break;
if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(0, 3299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_1);
__pyx_t_1 = 0;
+3300: available_flow += total_canal_demand[zz]
if (unlikely(__pyx_v_total_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3300, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_20 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_20);
__pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3301: excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, canal_obj, reservoir_obj.key, canal_obj.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'banking')
__pyx_t_31 = __Pyx_PyInt_As_int(__pyx_v_dowy); if (unlikely((__pyx_t_31 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error) __pyx_t_12 = __pyx_v_reservoir_obj->key; __Pyx_INCREF(__pyx_t_12); __pyx_t_20 = __pyx_v_canal_obj->name; __Pyx_INCREF(__pyx_t_20); __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_available_flow); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error) __pyx_t_30 = __Pyx_PyInt_As_int(__pyx_v_canal_size); if (unlikely((__pyx_t_30 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_v_wateryear); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error) __pyx_t_1 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_t_31, __pyx_v_canal_obj, ((PyObject*)__pyx_t_12), ((PyObject*)__pyx_t_20), __pyx_t_24, __pyx_t_30, __pyx_t_32, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3301, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_20 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3301, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_12); __pyx_t_12 = 0;
3302:
+3303: self.set_canal_direction(flow_type)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_flow_type); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3304:
3305: #swp/cvp_pump - find maximum pumping levels based on space in san luis(inputs for the northern model)
3306: #swp/cvp_release - toggle for 'max pumping' releases, based on space in san luis (inputs for the northern model)
3307: #take direct recharge deliveries and 'absorb' them into the groundwater, clearing way for more space in the recharge basins
+3308: for waterbank_obj in self.waterbank_list:#at water banks
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3308, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3308, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3309: waterbank_obj.sum_storage()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_sum_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_21 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3310: waterbank_obj.absorb_storage()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_21 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3311: for leiu_obj in self.leiu_list:#at in-leiu district banks (some also have direct recharge capacity, in addition to in-leiu)
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3311, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3311, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3311, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3311, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3312: leiu_obj.absorb_storage()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_leiu_obj), __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_21 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3313: for district_obj in self.district_list:#at in-district recharge facilities
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3313, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3313, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3313, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3314: if district_obj.current_recharge_storage > 0.0:
__pyx_t_3 = ((__pyx_v_district_obj->current_recharge_storage > 0.0) != 0);
if (__pyx_t_3) {
/* … */
}
+3315: district_obj.absorb_storage()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_21 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
3316:
3317: # kill_permanent = 0
3318: # if kill_permanent == 1:
3319: # for private_obj in self.private_list:
3320: # for district_key in private_obj.district_list:
3321: # private_obj.find_unmet_et(district_key, wateryear, dowy)
3322:
3323:
+3324: requester_list = [self.cawelo, self.ID4, self.rosedale]
__pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_self->cawelo)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->cawelo)); PyList_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self->cawelo)); __Pyx_INCREF(((PyObject *)__pyx_v_self->ID4)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ID4)); PyList_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->ID4)); __Pyx_INCREF(((PyObject *)__pyx_v_self->rosedale)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->rosedale)); PyList_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_self->rosedale)); __Pyx_DECREF_SET(__pyx_v_requester_list, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
+3325: for district_obj in requester_list:
__pyx_t_9 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; for (;;) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3325, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3325, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_21)); __pyx_t_21 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3326: for contract_obj in [self.kernriver, self.swpdelta]:
__pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyTuple_SET_ITEM(__pyx_t_21, 0, ((PyObject *)__pyx_v_self->kernriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyTuple_SET_ITEM(__pyx_t_21, 1, ((PyObject *)__pyx_v_self->swpdelta)); __pyx_t_1 = __pyx_t_21; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; for (;;) { if (__pyx_t_14 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3326, __pyx_L1_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21)); __pyx_t_21 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3327: next_year_carryover, this_year_carryover = district_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3327, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3327, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3327, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_7 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_20, __pyx_t_22, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_17, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_20, __pyx_t_22, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_17, __pyx_v_contract_obj->type}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif { __pyx_t_26 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_32, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_32, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_32, __pyx_t_2); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_32, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_32, __pyx_t_17); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_32, __pyx_v_contract_obj->type); __pyx_t_20 = 0; __pyx_t_22 = 0; __pyx_t_2 = 0; __pyx_t_17 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_26, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3327, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_12 = PyList_GET_ITEM(sequence, 0); __pyx_t_26 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_26); #else __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_26 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_17)->tp_iternext; index = 0; __pyx_t_12 = __pyx_t_13(__pyx_t_17); if (unlikely(!__pyx_t_12)) goto __pyx_L279_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); index = 1; __pyx_t_26 = __pyx_t_13(__pyx_t_17); if (unlikely(!__pyx_t_26)) goto __pyx_L279_unpacking_failed; __Pyx_GOTREF(__pyx_t_26); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_17), 2) < 0) __PYX_ERR(0, 3327, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; goto __pyx_L280_unpacking_done; __pyx_L279_unpacking_failed:; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3327, __pyx_L1_error) __pyx_L280_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_26); __pyx_t_26 = 0;
+3328: self.buenavista.paper_balance['tableA'] -= district_obj.projected_supply['kern']
if (unlikely(__pyx_v_self->buenavista->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3328, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->buenavista->paper_balance);
__pyx_t_27 = __pyx_v_self->buenavista->paper_balance;
__Pyx_INCREF(__pyx_n_u_tableA);
__pyx_t_28 = __pyx_n_u_tableA;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3328, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3328, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kern); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3328, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_26) < 0)) __PYX_ERR(0, 3328, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3329: self.buenavista.paper_balance['kern'] += district_obj.projected_supply['kern']
if (unlikely(__pyx_v_self->buenavista->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3329, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->buenavista->paper_balance);
__pyx_t_27 = __pyx_v_self->buenavista->paper_balance;
__Pyx_INCREF(__pyx_n_u_kern);
__pyx_t_28 = __pyx_n_u_kern;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3329, __pyx_L1_error)
}
__pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3329, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kern); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3329, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 3329, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3330: district_obj.paper_balance['tableA'] += district_obj.projected_supply['kern']
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3330, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->paper_balance);
__pyx_t_27 = __pyx_v_district_obj->paper_balance;
__Pyx_INCREF(__pyx_n_u_tableA);
__pyx_t_28 = __pyx_n_u_tableA;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3330, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3330, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kern); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3330, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_26) < 0)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3331: district_obj.paper_balance['kern'] -= district_obj.projected_supply['kern']
if (unlikely(__pyx_v_district_obj->paper_balance == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3331, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->paper_balance);
__pyx_t_27 = __pyx_v_district_obj->paper_balance;
__Pyx_INCREF(__pyx_n_u_kern);
__pyx_t_28 = __pyx_n_u_kern;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3331, __pyx_L1_error)
}
__pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3331, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kern); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_26, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(__pyx_t_27 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3331, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_27, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3332: for contract_obj in [self.kernriver, self.swpdelta]:
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->kernriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->swpdelta)); __pyx_t_21 = __pyx_t_1; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_14 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3332, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3333: next_year_carryover, this_year_carryover = district_obj.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_26 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3333, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3333, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3333, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[9] = {__pyx_t_20, __pyx_v_t, __pyx_v_wateryear, __pyx_t_12, __pyx_t_17, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_22, __pyx_v_contract_obj->type}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[9] = {__pyx_t_20, __pyx_v_t, __pyx_v_wateryear, __pyx_t_12, __pyx_t_17, __pyx_t_2, __pyx_v_contract_obj->name, __pyx_t_22, __pyx_v_contract_obj->type}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_7 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_32, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_32, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_32, __pyx_t_2); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_32, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_32, __pyx_t_22); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_32, __pyx_v_contract_obj->type); __pyx_t_12 = 0; __pyx_t_17 = 0; __pyx_t_2 = 0; __pyx_t_22 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3333, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_26 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_26 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_26 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_22)->tp_iternext; index = 0; __pyx_t_26 = __pyx_t_13(__pyx_t_22); if (unlikely(!__pyx_t_26)) goto __pyx_L283_unpacking_failed; __Pyx_GOTREF(__pyx_t_26); index = 1; __pyx_t_7 = __pyx_t_13(__pyx_t_22); if (unlikely(!__pyx_t_7)) goto __pyx_L283_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_22), 2) < 0) __PYX_ERR(0, 3333, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; goto __pyx_L284_unpacking_done; __pyx_L283_unpacking_failed:; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3333, __pyx_L1_error) __pyx_L284_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_26); __pyx_t_26 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_7); __pyx_t_7 = 0;
3334:
+3335: for contract_obj in [self.kernriver, self.swpdelta]:
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_self->kernriver)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->kernriver)); PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self->kernriver)); __Pyx_INCREF(((PyObject *)__pyx_v_self->swpdelta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->swpdelta)); PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->swpdelta)); __pyx_t_21 = __pyx_t_9; __Pyx_INCREF(__pyx_t_21); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; for (;;) { if (__pyx_t_11 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3335, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_21, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9)); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3336: next_year_carryover, this_year_carryover = self.buenavista.update_balance(t, wateryear, contract_obj.storage_pool[t], contract_obj.allocation[t], contract_obj.available_water[t], contract_obj.name, contract_obj.tot_carryover, contract_obj.type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->buenavista), __pyx_n_s_update_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3336, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_contract_obj->allocation == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3336, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->allocation, __pyx_v_t); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_contract_obj->available_water == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3336, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->available_water, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_17 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_v_wateryear, __pyx_t_7, __pyx_t_26, __pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_2, __pyx_v_contract_obj->type}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_v_wateryear, __pyx_t_7, __pyx_t_26, __pyx_t_22, __pyx_v_contract_obj->name, __pyx_t_2, __pyx_v_contract_obj->type}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_12 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_32, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_32, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_32, __pyx_t_22); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_32, __pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 6+__pyx_t_32, __pyx_t_2); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_12, 7+__pyx_t_32, __pyx_v_contract_obj->type); __pyx_t_7 = 0; __pyx_t_26 = 0; __pyx_t_22 = 0; __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3336, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_12 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L287_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_12 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L287_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3336, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L288_unpacking_done; __pyx_L287_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3336, __pyx_L1_error) __pyx_L288_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_12); __pyx_t_12 = 0;
3337:
3338:
3339: #reservoir class water balance do not include releases for irrigation/recharge deliveries
3340: #update storage based on total contract deliveries each day
+3341: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3341, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3341, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_21, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3341, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3342: reservoir = self.contract_reservoir[contract_obj.key]
if (unlikely(__pyx_v_self->contract_reservoir == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3342, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_reservoir, __pyx_v_contract_obj->key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_9);
__pyx_t_9 = 0;
+3343: if t < (self.T - 1):
__pyx_t_9 = __Pyx_PyInt_From_long((__pyx_v_self->T - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_RichCompare(__pyx_v_t, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_3) { /* … */ }
+3344: reservoir.S[t+1] -= contract_obj.daily_deliveries
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_contract_obj->daily_deliveries); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_22 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_9, __pyx_t_22) < 0)) __PYX_ERR(0, 3344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3345: contract_obj.daily_deliveries = 0.0
__pyx_v_contract_obj->daily_deliveries = 0.0;
+3346: if t < (self.T -1):
__pyx_t_21 = __Pyx_PyInt_From_long((__pyx_v_self->T - 1)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_12 = PyObject_RichCompare(__pyx_v_t, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L292; }
+3347: swp_pump, cvp_pump, = self.find_san_luis_space(t, 6680.0*cfs_tafd, 4430.0*cfs_tafd)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_san_luis_space); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_9); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = PyNumber_Multiply(__pyx_float_4430_0, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_t, __pyx_t_22, __pyx_t_2}; __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 3+__pyx_t_32); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_t, __pyx_t_22, __pyx_t_2}; __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 3+__pyx_t_32); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_1 = PyTuple_New(3+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_32, __pyx_v_t); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_32, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_32, __pyx_t_2); __pyx_t_22 = 0; __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_1, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) { PyObject* sequence = __pyx_t_12; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3347, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_21 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else { Py_ssize_t index = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; index = 0; __pyx_t_21 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_21)) goto __pyx_L293_unpacking_failed; __Pyx_GOTREF(__pyx_t_21); index = 1; __pyx_t_1 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L293_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3347, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L294_unpacking_done; __pyx_L293_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3347, __pyx_L1_error) __pyx_L294_unpacking_done:; } __pyx_v_swp_pump = __pyx_t_21; __pyx_t_21 = 0; __pyx_v_cvp_pump = __pyx_t_1; __pyx_t_1 = 0;
3348: else:
+3349: swp_pump = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_swp_pump = __pyx_float_0_0;
+3350: cvp_pump = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_cvp_pump = __pyx_float_0_0;
}
__pyx_L292:;
3351:
3352: ####ASSUMPTION THAT ANY DEMAND NOT MET BY SURFACE WATER IS MET THROUGH PUMPING
3353: ####doesn't do anything in the model (no GW connection), but can change this assumption/link to other models
+3354: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3354, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3354, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3354, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3354, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3355: district_obj.annual_private_pumping = district_obj.dailydemand[0]
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3355, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3355, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_district_obj->annual_private_pumping = __pyx_t_24;
+3356: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3356, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3356, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3356, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3357: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3357, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3357, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3358: private_obj.annual_private_pumping[district_key] = private_obj.dailydemand[district_key]
if (unlikely(__pyx_v_private_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3358, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->dailydemand, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_private_obj->annual_private_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3358, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annual_private_pumping, __pyx_v_district_key, __pyx_t_21) < 0)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3359: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3359, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3359, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3359, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3360: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3360, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3360, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3361: private_obj.annual_private_pumping[district_key] = private_obj.dailydemand[district_key]
if (unlikely(__pyx_v_private_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3361, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->dailydemand, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_private_obj->annual_private_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3361, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annual_private_pumping, __pyx_v_district_key, __pyx_t_21) < 0)) __PYX_ERR(0, 3361, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
3362: ####FOR RESULTS-OUTPUT (not output to northern model, but output for plots)
+3363: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3363, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3363, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3363, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3364: district_obj.accounting_full(t, wateryear)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3364, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3364, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_22 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_32, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3365: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3365, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3365, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3365, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3366: #from individual contracts - paper balance, carryover storage, allocations, and deliveries (irrigation) - records daily values
+3367: contract_obj.accounting(t, da, m, wateryear, district_obj.deliveries[contract_obj.name][wateryear], district_obj.carryover[contract_obj.name], district_obj.turnback_pool[contract_obj.name], district_obj.deliveries[contract_obj.name + '_flood'][wateryear] + district_obj.deliveries[contract_obj.name + '_flood_irrigation'][wateryear])
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_contract_obj), __pyx_n_s_accounting); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3367, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_district_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3367, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->turnback_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3367, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->turnback_pool, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3367, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3367, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_t_17); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_Add(__pyx_t_7, __pyx_t_17); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_9, __pyx_t_2, __pyx_t_26, __pyx_t_20}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_17, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_9, __pyx_t_2, __pyx_t_26, __pyx_t_20}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_7 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_32, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_32, __pyx_v_m); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_32, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_32, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_32, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_32, __pyx_t_20); __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_26 = 0; __pyx_t_20 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_7, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3368: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3368, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3368, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3368, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3369: private_obj.accounting_full(t, wateryear)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_22 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3369, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_22, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3369, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_22) { __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_22); __pyx_t_22 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_32, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3370: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3370, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3370, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3370, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3371: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3371, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_7); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3371, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3371, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3372: contract_obj.accounting(t, da, m, wateryear, private_obj.deliveries[district_key][contract_obj.name][wateryear], private_obj.carryover[district_key][contract_obj.name], private_obj.turnback_pool[district_key][contract_obj.name], private_obj.deliveries[district_key][contract_obj.name + '_flood'][wateryear] + private_obj.deliveries[district_key][contract_obj.name + '_flood_irrigation'][wateryear])
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_contract_obj), __pyx_n_s_accounting); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3372, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_20, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3372, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(__pyx_v_private_obj->turnback_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3372, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->turnback_pool, __pyx_v_district_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3372, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_17 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_25 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_t_17); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3372, __pyx_L1_error) } __pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_26 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_t_26); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_17, __pyx_t_26); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_26, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_20, __pyx_t_2, __pyx_t_9, __pyx_t_5}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[9] = {__pyx_t_26, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_20, __pyx_t_2, __pyx_t_9, __pyx_t_5}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_17 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_32, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_32, __pyx_v_m); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_32, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_32, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_32, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_32, __pyx_t_5); __pyx_t_20 = 0; __pyx_t_2 = 0; __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_17, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3373: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3373, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3373, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3373, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3374: private_obj.accounting_full(t, wateryear)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3374, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3374, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_22 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_32, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3375: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3375, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3375, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3376: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3376, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_22); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3376, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3376, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3377: contract_obj.accounting(t, da, m, wateryear, private_obj.deliveries[district_key][contract_obj.name][wateryear], private_obj.carryover[district_key][contract_obj.name], private_obj.turnback_pool[district_key][contract_obj.name], private_obj.deliveries[district_key][contract_obj.name + '_flood'][wateryear] + private_obj.deliveries[district_key][contract_obj.name + '_flood_irrigation'][wateryear])
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_contract_obj), __pyx_n_s_accounting); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3377, __pyx_L1_error) } __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3377, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->turnback_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3377, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->turnback_pool, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3377, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_20 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_t_20); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3377, __pyx_L1_error) } __pyx_t_26 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_5 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_contract_obj->name, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_25 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_t_5); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyNumber_Add(__pyx_t_20, __pyx_t_5); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_17, __pyx_t_9, __pyx_t_2, __pyx_t_25}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_17, __pyx_t_9, __pyx_t_2, __pyx_t_25}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_32, 8+__pyx_t_32); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else #endif { __pyx_t_20 = PyTuple_New(8+__pyx_t_32); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_32, __pyx_v_da); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_32, __pyx_v_m); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_32, __pyx_v_wateryear); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_32, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_32, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_32, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_20, 7+__pyx_t_32, __pyx_t_25); __pyx_t_17 = 0; __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_25 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_20, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
3378:
3379: #update individual accounts in groundwater banks
+3380: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3380, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3380, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3381: waterbank_obj.accounting(t, m, da, wateryear)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_accounting); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_22 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(4+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_22) { __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_22); __pyx_t_22 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_32, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_32, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_32, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3382: for waterbank_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3382, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3382, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3383: waterbank_obj.accounting_leiubank(t, m, da, wateryear)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbank_obj, __pyx_n_s_accounting_leiubank); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_22 = PyTuple_New(4+__pyx_t_32); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_32, __pyx_v_t); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_32, __pyx_v_m); __Pyx_INCREF(__pyx_v_da); __Pyx_GIVEREF(__pyx_v_da); PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_32, __pyx_v_da); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_32, __pyx_v_wateryear); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3384:
3385: ##Reset contracts for the next water year, distribute unused contract water into carryover flows/ next year's contract allocation
+3386: tot_paper = 0.0
__pyx_v_tot_paper = 0.0;
+3387: tot_turnback = 0.0
__pyx_v_tot_turnback = 0.0;
+3388: if m == 9 and da == 30:
__pyx_t_12 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L326_bool_binop_done; } __pyx_t_12 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_30, 30, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_3 = __pyx_t_6; __pyx_L326_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+3389: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3389, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3389, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 3389, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3390: lastYearCarryover = contract_obj.tot_carryover
__pyx_t_24 = __pyx_v_contract_obj->tot_carryover;
__pyx_v_lastYearCarryover = __pyx_t_24;
+3391: contract_obj.tot_carryover = 0.0
__pyx_v_contract_obj->tot_carryover = 0.0;
+3392: contract_obj.tot_new_alloc = 0.0
__pyx_v_contract_obj->tot_new_alloc = 0.0;
+3393: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3393, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3393, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3393, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3394: use_contract = 0
__pyx_v_use_contract = 0;
+3395: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3395, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_22); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3395, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3395, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3396: if contract_key == contract_obj.name:
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_v_contract_obj->name, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3396, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+3397: use_contract = 1
__pyx_v_use_contract = 1;
+3398: if use_contract == 1:
__pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
if (__pyx_t_3) {
/* … */
}
+3399: new_alloc, carryover = district_obj.calc_carryover(contract_obj.storage_pool[t], wateryear, contract_obj.type, contract_obj.name)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3399, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[5] = {__pyx_t_20, __pyx_t_7, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[5] = {__pyx_t_20, __pyx_t_7, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 4+__pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_25 = PyTuple_New(4+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_32, __pyx_t_7); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_32, __pyx_v_contract_obj->type); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_32, __pyx_v_contract_obj->name); __pyx_t_7 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_25, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3399, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_25 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_22 = PyList_GET_ITEM(sequence, 0); __pyx_t_25 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_25); #else __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_25 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_22 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_22)) goto __pyx_L336_unpacking_failed; __Pyx_GOTREF(__pyx_t_22); index = 1; __pyx_t_25 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_25)) goto __pyx_L336_unpacking_failed; __Pyx_GOTREF(__pyx_t_25); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_7), 2) < 0) __PYX_ERR(0, 3399, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L337_unpacking_done; __pyx_L336_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3399, __pyx_L1_error) __pyx_L337_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_25); __pyx_t_25 = 0;
+3400: contract_obj.tot_new_alloc += new_alloc
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_new_alloc); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_v_new_alloc); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3400, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_v_contract_obj->tot_new_alloc = __pyx_t_24;
+3401: contract_obj.tot_carryover += carryover
__pyx_t_25 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_v_carryover); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3401, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_v_contract_obj->tot_carryover = __pyx_t_24;
3402:
3403:
+3404: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3404, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3404, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3404, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3405: #total_carryover = 0.0
3406: #total_paper_balance = 0.0
3407: #total_carryover_limit = 0.0
+3408: use_contract = 0
__pyx_v_use_contract = 0;
+3409: for contract_key in private_obj.contract_list:
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3409, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->contract_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3409, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3410: if contract_key == contract_obj.name:
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_v_contract_obj->name, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3410, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+3411: use_contract = 1
__pyx_v_use_contract = 1;
+3412: if use_contract == 1:
__pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
if (__pyx_t_3) {
/* … */
}
+3413: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3413, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3413, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
3414: # district_obj = self.district_keys[district_key]
+3415: new_alloc, carryover = private_obj.calc_carryover(contract_obj.storage_pool[t], wateryear, contract_obj.type, contract_obj.name, district_key, self.district_keys[district_key].project_contract, self.district_keys[district_key].rights)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3415, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3415, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3415, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_rights); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[8] = {__pyx_t_20, __pyx_t_7, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name, __pyx_v_district_key, __pyx_t_2, __pyx_t_9}; __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 7+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[8] = {__pyx_t_20, __pyx_t_7, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name, __pyx_v_district_key, __pyx_t_2, __pyx_t_9}; __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_32, 7+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_17 = PyTuple_New(7+__pyx_t_32); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_32, __pyx_t_7); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_32, __pyx_v_contract_obj->type); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_32, __pyx_v_contract_obj->name); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_32, __pyx_v_district_key); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_32, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_32, __pyx_t_9); __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_9 = 0; __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_17, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_25))) || (PyList_CheckExact(__pyx_t_25))) { PyObject* sequence = __pyx_t_25; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3415, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_22 = PyList_GET_ITEM(sequence, 0); __pyx_t_17 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_17); #else __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_22 = __pyx_t_13(__pyx_t_9); if (unlikely(!__pyx_t_22)) goto __pyx_L346_unpacking_failed; __Pyx_GOTREF(__pyx_t_22); index = 1; __pyx_t_17 = __pyx_t_13(__pyx_t_9); if (unlikely(!__pyx_t_17)) goto __pyx_L346_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_9), 2) < 0) __PYX_ERR(0, 3415, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L347_unpacking_done; __pyx_L346_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3415, __pyx_L1_error) __pyx_L347_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_17); __pyx_t_17 = 0;
3416:
+3417: contract_obj.tot_carryover += carryover
__pyx_t_25 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_v_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_v_contract_obj->tot_carryover = __pyx_t_24;
+3418: contract_obj.tot_new_alloc += new_alloc
__pyx_t_17 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_new_alloc); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_v_new_alloc); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_v_contract_obj->tot_new_alloc = __pyx_t_24;
3419: #total_carryover += private_obj.carryover[district_key][contract_obj.name]
3420: #total_paper_balance += private_obj.paper_balance[district_key][contract_obj.name]
3421: #total_carryover_limit += private_obj.contract_carryover_list[district_key][contract_obj.name]
3422: #if total_carryover + total_paper_balance > total_carryover_limit:
3423: #for district_key in private_obj.district_list:
3424: #private_obj.carryover[district_key][contract_obj.name] = private_obj.contract_carryover_list[district_key][contract_obj.name]
3425: #contract_obj.tot_carryover += private_obj.carryover[district_key][contract_obj.name]
3426: #contract_obj.tot_new_alloc += (total_carryover + total_paper_balance - total_carryover_limit)
3427: #else:
3428: #carryover_frac = (total_carryover + total_paper_balance)/total_carryover_limit
3429: #for district_key in private_obj.district_list:
3430: #private_obj.carryover[district_key][contract_obj.name] = carryover_frac*private_obj.contract_carryover_list[district_key][contract_obj.name]
3431: #contract_obj.tot_carryover += private_obj.carryover[district_key][contract_obj.name]
3432: #for district_key in private_obj.district_list:
3433: #private_obj.paper_balance[district_key][contract_obj.name] = 0.0
+3434: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3434, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3434, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3434, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3435: #total_carryover = 0.0
3436: #total_paper_balance = 0.0
3437: #total_carryover_limit = 0.0
+3438: use_contract = 0
__pyx_v_use_contract = 0;
+3439: for contract_key in private_obj.contract_list:
if (unlikely(__pyx_v_private_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3439, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->contract_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3439, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3440: if contract_key == contract_obj.name:
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_v_contract_obj->name, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3440, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+3441: use_contract = 1
__pyx_v_use_contract = 1;
+3442: if use_contract == 1:
__pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
if (__pyx_t_3) {
/* … */
}
+3443: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3443, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3443, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
3444: # district_obj = self.district_keys[district_key]
+3445: new_alloc, carryover = private_obj.calc_carryover(contract_obj.storage_pool[t], wateryear, contract_obj.type, contract_obj.name, district_key, self.district_keys[district_key].project_contract, self.district_keys[district_key].rights)
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(__pyx_v_contract_obj->storage_pool == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3445, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_contract_obj->storage_pool, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3445, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3445, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_22, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name, __pyx_v_district_key, __pyx_t_2, __pyx_t_7}; __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_32, 7+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_22, __pyx_v_wateryear, __pyx_v_contract_obj->type, __pyx_v_contract_obj->name, __pyx_v_district_key, __pyx_t_2, __pyx_t_7}; __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_32, 7+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_20 = PyTuple_New(7+__pyx_t_32); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_32, __pyx_t_22); __Pyx_INCREF(__pyx_v_wateryear); __Pyx_GIVEREF(__pyx_v_wateryear); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_32, __pyx_v_wateryear); __Pyx_INCREF(__pyx_v_contract_obj->type); __Pyx_GIVEREF(__pyx_v_contract_obj->type); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_32, __pyx_v_contract_obj->type); __Pyx_INCREF(__pyx_v_contract_obj->name); __Pyx_GIVEREF(__pyx_v_contract_obj->name); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_32, __pyx_v_contract_obj->name); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_32, __pyx_v_district_key); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_32, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_32, __pyx_t_7); __pyx_t_22 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_20, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_25))) || (PyList_CheckExact(__pyx_t_25))) { PyObject* sequence = __pyx_t_25; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3445, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_20 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_17 = PyList_GET_ITEM(sequence, 0); __pyx_t_20 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(__pyx_t_20); #else __pyx_t_17 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_20 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); #endif __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_17 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_17)) goto __pyx_L356_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); index = 1; __pyx_t_20 = __pyx_t_13(__pyx_t_7); if (unlikely(!__pyx_t_20)) goto __pyx_L356_unpacking_failed; __Pyx_GOTREF(__pyx_t_20); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_7), 2) < 0) __PYX_ERR(0, 3445, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L357_unpacking_done; __pyx_L356_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3445, __pyx_L1_error) __pyx_L357_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_20); __pyx_t_20 = 0;
+3446: contract_obj.tot_carryover += carryover
__pyx_t_25 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_v_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_contract_obj->tot_carryover = __pyx_t_24;
+3447: contract_obj.tot_new_alloc += new_alloc
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_new_alloc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_t_20, __pyx_v_new_alloc); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_v_contract_obj->tot_new_alloc = __pyx_t_24;
3448: #total_carryover += private_obj.carryover[district_key][contract_obj.name]
3449: #total_paper_balance += private_obj.paper_balance[district_key][contract_obj.name]
3450: #total_carryover_limit += private_obj.contract_carryover_list[district_key][contract_obj.name]
3451: #if total_carryover + total_paper_balance > total_carryover_limit:
3452: #for district_key in private_obj.district_list:
3453: #private_obj.carryover[district_key][contract_obj.name] = private_obj.contract_carryover_list[district_key][contract_obj.name]
3454: #contract_obj.tot_carryover += private_obj.carryover[district_key][contract_obj.name]
3455: #contract_obj.tot_new_alloc += (total_carryover + total_paper_balance - total_carryover_limit)
3456: #else:
3457: #if total_carryover_limit > 0.0:
3458: #carryover_frac = (total_carryover + total_paper_balance)/total_carryover_limit
3459: #else:
3460: #carryover_frac = 0.0
3461: #for district_key in private_obj.district_list:
3462: #private_obj.carryover[district_key][contract_obj.name] = carryover_frac*private_obj.contract_carryover_list[district_key][contract_obj.name]
3463:
3464: #contract_obj.tot_carryover += private_obj.carryover[district_key][contract_obj.name]
3465: #for district_key in private_obj.district_list:
3466: #private_obj.paper_balance[district_key][contract_obj.name] = 0.0
3467:
+3468: if contract_obj.name == 'tableA' and use_contract == 1:
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->name, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3468, __pyx_L1_error) __pyx_t_33 = (__pyx_t_6 != 0); if (__pyx_t_33) { } else { __pyx_t_3 = __pyx_t_33; goto __pyx_L359_bool_binop_done; } __pyx_t_33 = ((__pyx_v_use_contract == 1) != 0); __pyx_t_3 = __pyx_t_33; __pyx_L359_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+3469: current_carryover_storage = self.sanluisstate.S[t] - contract_obj.tot_new_alloc - 40.0
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3469, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_new_alloc); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_25 = PyNumber_Subtract(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyFloat_SubtractObjC(__pyx_t_25, __pyx_float_40_0, 40.0, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_XDECREF_SET(__pyx_v_current_carryover_storage, __pyx_t_21);
__pyx_t_21 = 0;
+3470: fudge_factor = current_carryover_storage/contract_obj.tot_carryover
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_carryover); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_25 = __Pyx_PyNumber_Divide(__pyx_v_current_carryover_storage, __pyx_t_21); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF_SET(__pyx_v_fudge_factor, __pyx_t_25); __pyx_t_25 = 0;
+3471: contract_obj.tot_carryover = self.sanluisstate.S[t] - contract_obj.tot_new_alloc - 40.0
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3471, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_contract_obj->tot_new_alloc); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_1 = PyNumber_Subtract(__pyx_t_25, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_40_0, 40.0, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3471, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_v_contract_obj->tot_carryover = __pyx_t_24;
+3472: sum_carryover = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_sum_carryover, __pyx_float_0_0);
+3473: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3473, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3473, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3473, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3473, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3474: district_obj.carryover[contract_obj.name] = district_obj.carryover[contract_obj.name]*fudge_factor
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3474, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_25 = PyNumber_Multiply(__pyx_t_1, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3474, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name, __pyx_t_25) < 0)) __PYX_ERR(0, 3474, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3475: sum_carryover+= district_obj.carryover[contract_obj.name]
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3475, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_25); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_1);
__pyx_t_1 = 0;
+3476: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3476, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3476, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3476, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3476, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3477: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3477, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3477, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3478: private_obj.carryover[district_key][contract_obj.name] = private_obj.carryover[district_key][contract_obj.name]*fudge_factor
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3478, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_Multiply(__pyx_t_20, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3478, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_v_contract_obj->name, __pyx_t_25) < 0)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3479: sum_carryover+= private_obj.carryover[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3479, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_20); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_25);
__pyx_t_25 = 0;
+3480: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3480, __pyx_L1_error)
}
__pyx_t_21 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_21); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_21)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3480, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_21, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3480, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3481: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3481, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_19 = 0;
for (;;) {
if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_25 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_25); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 3481, __pyx_L1_error)
#else
__pyx_t_25 = PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3481, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_25);
__pyx_t_25 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3482: private_obj.carryover[district_key][contract_obj.name] = private_obj.carryover[district_key][contract_obj.name]*fudge_factor
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3482, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_Multiply(__pyx_t_20, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3482, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_v_contract_obj->name, __pyx_t_25) < 0)) __PYX_ERR(0, 3482, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3483: sum_carryover+= private_obj.carryover[district_key][contract_obj.name]
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3483, __pyx_L1_error)
}
__pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_20); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_25);
__pyx_t_25 = 0;
3484:
+3485: contract_obj.running_carryover = contract_obj.tot_carryover
__pyx_t_24 = __pyx_v_contract_obj->tot_carryover;
__pyx_v_contract_obj->running_carryover = __pyx_t_24;
3486:
3487:
3488: #reset counter for delta contract adjustment for foregone pumping and uncontrolled releases
+3489: for key in self.pumping_turnback:
__pyx_t_11 = 0;
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3489, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_dict_iterator(__pyx_v_self->pumping_turnback, 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_32)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_12);
__pyx_t_12 = __pyx_t_21;
__pyx_t_21 = 0;
while (1) {
__pyx_t_30 = __Pyx_dict_iter_next(__pyx_t_12, __pyx_t_14, &__pyx_t_11, &__pyx_t_21, NULL, NULL, __pyx_t_32);
if (unlikely(__pyx_t_30 == 0)) break;
if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(0, 3489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_21);
__pyx_t_21 = 0;
+3490: self.pumping_turnback[key] = 0.0
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3490, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->pumping_turnback, __pyx_v_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3490, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3491: for key in self.allocation_losses:
__pyx_t_14 = 0;
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3491, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_dict_iterator(__pyx_v_self->allocation_losses, 1, ((PyObject *)NULL), (&__pyx_t_11), (&__pyx_t_32)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_12);
__pyx_t_12 = __pyx_t_21;
__pyx_t_21 = 0;
while (1) {
__pyx_t_30 = __Pyx_dict_iter_next(__pyx_t_12, __pyx_t_11, &__pyx_t_14, &__pyx_t_21, NULL, NULL, __pyx_t_32);
if (unlikely(__pyx_t_30 == 0)) break;
if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(0, 3491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_21);
__pyx_t_21 = 0;
+3492: self.allocation_losses[key] = 0.0
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3492, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->allocation_losses, __pyx_v_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3492, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3493:
3494: ##Clear Canal Flows
3495: ##every day, we zero out the flows on each canal (i.e. no canal storage, no 'routing' of water on the canals)
3496: ###any flow released from a reservoir is assumed to arrive at its destimation immediately
3497: #Reset canals and record turnouts & flows at each node
+3498: for canal_obj in self.canal_list:
if (unlikely(__pyx_v_self->canal_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3498, __pyx_L1_error)
}
__pyx_t_12 = __pyx_v_self->canal_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_11); __Pyx_INCREF(__pyx_t_21); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3498, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_12, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 3498, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_21));
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3499: counter = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_counter, __pyx_int_0);
+3500: for canal_loc in range(0, self.canal_district_len[canal_obj.name]):
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3500, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
__Pyx_GIVEREF(__pyx_t_21);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_21);
__pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
__pyx_t_1 = __pyx_t_21; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
__pyx_t_16 = NULL;
} else {
__pyx_t_14 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3500, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
for (;;) {
if (likely(!__pyx_t_16)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3500, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
} else {
if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3500, __pyx_L1_error)
#else
__pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
#endif
}
} else {
__pyx_t_21 = __pyx_t_16(__pyx_t_1);
if (unlikely(!__pyx_t_21)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3500, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_21);
}
__Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_21);
__pyx_t_21 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3501: loc_id = self.canal_district[canal_obj.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3501, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3501, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_canal_loc); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3501, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF_SET(__pyx_v_loc_id, __pyx_t_25);
__pyx_t_25 = 0;
+3502: canal_obj.accounting(t, loc_id.key, counter)
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal_obj), __pyx_n_s_accounting); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_loc_id, __pyx_n_s_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_17 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_17, __pyx_v_t, __pyx_t_20, __pyx_v_counter}; __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 3+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[4] = {__pyx_t_17, __pyx_v_t, __pyx_t_20, __pyx_v_counter}; __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_32, 3+__pyx_t_32); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_32, __pyx_v_t); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_32, __pyx_t_20); __Pyx_INCREF(__pyx_v_counter); __Pyx_GIVEREF(__pyx_v_counter); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_32, __pyx_v_counter); __pyx_t_20 = 0; __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_7, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3503: counter += 1
__pyx_t_25 = __Pyx_PyInt_AddObjC(__pyx_v_counter, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF_SET(__pyx_v_counter, __pyx_t_25); __pyx_t_25 = 0;
+3504: canal_obj.num_sites = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3504, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_32 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3504, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_canal_obj->num_sites = __pyx_t_32;
+3505: canal_obj.turnout_use = [0.0 for _ in range(canal_obj.num_sites)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_32 = __pyx_v_canal_obj->num_sites;
__pyx_t_30 = __pyx_t_32;
for (__pyx_t_31 = 0; __pyx_t_31 < __pyx_t_30; __pyx_t_31+=1) {
__pyx_9genexpr33__pyx_v__ = __pyx_t_31;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 3505, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_canal_obj->turnout_use);
__Pyx_DECREF(__pyx_v_canal_obj->turnout_use);
__pyx_v_canal_obj->turnout_use = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+3506: canal_obj.flow = [0.0 for _ in range(canal_obj.num_sites+1)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_34 = (__pyx_v_canal_obj->num_sites + 1);
__pyx_t_35 = __pyx_t_34;
for (__pyx_t_36 = 0; __pyx_t_36 < __pyx_t_35; __pyx_t_36+=1) {
__pyx_9genexpr34__pyx_v__ = __pyx_t_36;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 3506, __pyx_L1_error)
}
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_canal_obj->flow);
__Pyx_DECREF(__pyx_v_canal_obj->flow);
__pyx_v_canal_obj->flow = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+3507: canal_obj.locked = 0
__pyx_v_canal_obj->locked = 0;
3508:
3509:
+3510: return swp_release, cvp_release, swp_release2, cvp_release2, swp_pump, cvp_pump
__Pyx_XDECREF(__pyx_r); __pyx_t_12 = PyTuple_New(6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_swp_release); __Pyx_GIVEREF(__pyx_v_swp_release); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_swp_release); __Pyx_INCREF(__pyx_v_cvp_release); __Pyx_GIVEREF(__pyx_v_cvp_release); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_cvp_release); __Pyx_INCREF(__pyx_v_swp_release2); __Pyx_GIVEREF(__pyx_v_swp_release2); PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_v_swp_release2); __Pyx_INCREF(__pyx_v_cvp_release2); __Pyx_GIVEREF(__pyx_v_cvp_release2); PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_v_cvp_release2); __Pyx_INCREF(__pyx_v_swp_pump); __Pyx_GIVEREF(__pyx_v_swp_pump); PyTuple_SET_ITEM(__pyx_t_12, 4, __pyx_v_swp_pump); __Pyx_INCREF(__pyx_v_cvp_pump); __Pyx_GIVEREF(__pyx_v_cvp_pump); PyTuple_SET_ITEM(__pyx_t_12, 5, __pyx_v_cvp_pump); __pyx_r = __pyx_t_12; __pyx_t_12 = 0; goto __pyx_L0;
3511:
3512: #####################################################################################################################
3513: #####################################################################################################################
3514: #####################################################################################################################
3515:
3516:
3517:
3518: #####################################################################################################################
3519: ############################# Federal/State San Luis Storage Sharing #############################################
3520: #####################################################################################################################
+3521: def step_san_luis(self, t, m, da):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_53step_san_luis(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_53step_san_luis(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_da = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("step_san_luis (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_m,&__pyx_n_s_da,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 3, 3, 1); __PYX_ERR(0, 3521, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 3, 3, 2); __PYX_ERR(0, 3521, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "step_san_luis") < 0)) __PYX_ERR(0, 3521, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_t = values[0];
__pyx_v_m = values[1];
__pyx_v_da = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3521, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.step_san_luis", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_52step_san_luis(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_m, __pyx_v_da);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_52step_san_luis(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_m, PyObject *__pyx_v_da) {
PyObject *__pyx_v_extra_storage_s = NULL;
PyObject *__pyx_v_extra_space_s = NULL;
PyObject *__pyx_v_extra_storage_f = NULL;
PyObject *__pyx_v_extra_space_f = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("step_san_luis", 0);
__Pyx_TraceCall("step_san_luis", __pyx_f[0], 3521, 0, __PYX_ERR(0, 3521, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("calfews_src.model_cy.Model.step_san_luis", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_extra_storage_s);
__Pyx_XDECREF(__pyx_v_extra_space_s);
__Pyx_XDECREF(__pyx_v_extra_storage_f);
__Pyx_XDECREF(__pyx_v_extra_space_f);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
3522: #This function allows the state/federal projects to take advantage of any unused space the other may have so that storage
3523: #volumes can temporarily go above each project's 50% share of the storage cpacity at san luis
+3524: self.sanluisfederal.S[t+1] = self.sanluisfederal.S[t] + self.trp_pumping[t]
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3524, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->trp_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3524, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->trp_pumping, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3524, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_2, __pyx_t_3) < 0)) __PYX_ERR(0, 3524, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3525: self.sanluisstate.S[t+1] = self.sanluisstate.S[t] + self.hro_pumping[t]
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3525, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_v_self->hro_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3525, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->hro_pumping, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3525, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_v_self->sanluisstate->S, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(0, 3525, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3526: if m == 10 and da == 1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_4) { /* … */ goto __pyx_L3; }
+3527: self.ytd_pump_trp[t] = self.trp_pumping[t]
if (unlikely(__pyx_v_self->trp_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3527, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->trp_pumping, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->ytd_pump_trp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3527, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->ytd_pump_trp, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 3527, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3528: self.ytd_pump_hro[t] = self.hro_pumping[t]
if (unlikely(__pyx_v_self->hro_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3528, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->hro_pumping, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->ytd_pump_hro == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3528, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->ytd_pump_hro, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 3528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3529: else:
+3530: self.ytd_pump_trp[t] = self.trp_pumping[t] + self.ytd_pump_trp[t-1]
/*else*/ {
if (unlikely(__pyx_v_self->trp_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3530, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->trp_pumping, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->ytd_pump_trp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3530, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->ytd_pump_trp, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_self->ytd_pump_trp == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3530, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->ytd_pump_trp, __pyx_v_t, __pyx_t_2) < 0)) __PYX_ERR(0, 3530, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3531: self.ytd_pump_hro[t] = self.hro_pumping[t] + self.ytd_pump_hro[t-1]
if (unlikely(__pyx_v_self->hro_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3531, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->hro_pumping, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->ytd_pump_hro == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3531, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->ytd_pump_hro, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_self->ytd_pump_hro == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3531, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_v_self->ytd_pump_hro, __pyx_v_t, __pyx_t_3) < 0)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L3:;
3532:
+3533: if self.sanluisstate.S[t+1] > 1021.0:
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3533, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1021_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3533, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3533, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
goto __pyx_L6;
}
+3534: extra_storage_s = self.sanluisstate.S[t+1] - 1021.0
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3534, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1021_0, 1021.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_extra_storage_s = __pyx_t_3;
__pyx_t_3 = 0;
+3535: extra_space_s = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_space_s = __pyx_float_0_0;
3536: else:
3537: #extra_space_s = 0.0
+3538: extra_space_s = 1021.0 - self.sanluisstate.S[t+1]
/*else*/ {
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3538, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_1, 1021.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_extra_space_s = __pyx_t_3;
__pyx_t_3 = 0;
+3539: extra_storage_s = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_storage_s = __pyx_float_0_0;
}
__pyx_L6:;
+3540: if self.sanluisfederal.S[t+1] > 1021.0:
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3540, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3540, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3540, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1021_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3540, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3540, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
goto __pyx_L7;
}
+3541: extra_storage_f = self.sanluisfederal.S[t+1] - 1021.0
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3541, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1021_0, 1021.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_extra_storage_f = __pyx_t_3;
__pyx_t_3 = 0;
+3542: extra_space_f = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_space_f = __pyx_float_0_0;
3543: else:
3544: #extra_space_f = 0.0
+3545: extra_space_f = 1021.0 - self.sanluisfederal.S[t+1]
/*else*/ {
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3545, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_1, 1021.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_extra_space_f = __pyx_t_3;
__pyx_t_3 = 0;
+3546: extra_storage_f = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_extra_storage_f = __pyx_float_0_0;
}
__pyx_L7:;
+3547: if extra_storage_s > 0.0:
__pyx_t_3 = PyObject_RichCompare(__pyx_v_extra_storage_s, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3547, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3547, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L8; }
+3548: self.sanluisstate.fcr = max(extra_storage_s - extra_space_f,0.0)
__pyx_t_6 = 0.0;
__pyx_t_3 = PyNumber_Subtract(__pyx_v_extra_storage_s, __pyx_v_extra_space_f); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_4) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_self->sanluisstate->fcr = __pyx_t_6;
3549: else:
+3550: self.sanluisstate.fcr = 0.0
/*else*/ {
__pyx_v_self->sanluisstate->fcr = 0.0;
}
__pyx_L8:;
+3551: if extra_storage_f > 0.0:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_extra_storage_f, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3551, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3551, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L9; }
+3552: self.sanluisfederal.fcr = max(extra_storage_f - extra_space_s,0.0)
__pyx_t_6 = 0.0;
__pyx_t_1 = PyNumber_Subtract(__pyx_v_extra_storage_f, __pyx_v_extra_space_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_4) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3552, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_self->sanluisfederal->fcr = __pyx_t_6;
3553: else:
+3554: self.sanluisfederal.fcr = 0.0
/*else*/ {
__pyx_v_self->sanluisfederal->fcr = 0.0;
}
__pyx_L9:;
+3555: self.sanluisstate.S[t+1] -= self.sanluisstate.fcr
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3555, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->sanluisstate->S);
__pyx_t_8 = __pyx_v_self->sanluisstate->S;
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_t_8 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3555, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->sanluisstate->fcr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_t_8 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3555, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_3, __pyx_t_7) < 0)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3556: self.sanluisfederal.S[t+1] -= self.sanluisfederal.fcr
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3556, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->sanluisfederal->S);
__pyx_t_8 = __pyx_v_self->sanluisfederal->S;
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_t_8 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3556, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->sanluisfederal->fcr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_t_8 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3556, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_3, __pyx_t_1) < 0)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3557: return max(min(extra_storage_s, extra_space_f), 0.0), max(min(extra_storage_f, extra_space_s),0.0)
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = 0.0; __Pyx_INCREF(__pyx_v_extra_space_f); __pyx_t_3 = __pyx_v_extra_space_f; __Pyx_INCREF(__pyx_v_extra_storage_s); __pyx_t_1 = __pyx_v_extra_storage_s; __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3557, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { __pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __pyx_t_7; __pyx_t_7 = 0; } else { __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = 0.0; __Pyx_INCREF(__pyx_v_extra_space_s); __pyx_t_3 = __pyx_v_extra_space_s; __Pyx_INCREF(__pyx_v_extra_storage_f); __pyx_t_7 = __pyx_v_extra_storage_f; __pyx_t_9 = PyObject_RichCompare(__pyx_t_3, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3557, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; } else { __Pyx_INCREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_4) { __pyx_t_9 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __pyx_t_9; __pyx_t_9 = 0; } else { __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
3558:
+3559: def find_san_luis_space(self, t, swp_pump_max, cvp_pump_max):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_55find_san_luis_space(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_55find_san_luis_space(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_swp_pump_max = 0;
PyObject *__pyx_v_cvp_pump_max = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_san_luis_space (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_swp_pump_max,&__pyx_n_s_cvp_pump_max,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_pump_max)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 3, 3, 1); __PYX_ERR(0, 3559, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_pump_max)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 3, 3, 2); __PYX_ERR(0, 3559, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_san_luis_space") < 0)) __PYX_ERR(0, 3559, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_t = values[0];
__pyx_v_swp_pump_max = values[1];
__pyx_v_cvp_pump_max = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3559, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_san_luis_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_54find_san_luis_space(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_swp_pump_max, __pyx_v_cvp_pump_max);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_54find_san_luis_space(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_swp_pump_max, PyObject *__pyx_v_cvp_pump_max) {
PyObject *__pyx_v_swp_pump = NULL;
PyObject *__pyx_v_cvp_pump = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_san_luis_space", 0);
__Pyx_TraceCall("find_san_luis_space", __pyx_f[0], 3559, 0, __PYX_ERR(0, 3559, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_san_luis_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_swp_pump);
__Pyx_XDECREF(__pyx_v_cvp_pump);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
3560: #if there is no additional storage in san luis, send toggle variable to the northern model to turn 'off'
3561: #pumping at teh delta (so no wasted pumping if there is no room in san luis)
+3562: if self.sanluisstate.S[t+1] + swp_pump_max > 1020.0:
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3562, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_v_swp_pump_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+3563: swp_pump = 1021.0 - self.sanluisstate.S[t+1]
if (unlikely(__pyx_v_self->sanluisstate->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3563, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisstate->S, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_1, 1021.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_swp_pump = __pyx_t_2;
__pyx_t_2 = 0;
3564: else:
+3565: swp_pump = 999.0
/*else*/ {
__Pyx_INCREF(__pyx_float_999_0);
__pyx_v_swp_pump = __pyx_float_999_0;
}
__pyx_L3:;
+3566: if self.sanluisfederal.S[t+1] + cvp_pump_max > 1020.0:
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3566, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_cvp_pump_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3566, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3566, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L4;
}
+3567: cvp_pump = 1021.0 - self.sanluisfederal.S[t+1]
if (unlikely(__pyx_v_self->sanluisfederal->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3567, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->sanluisfederal->S, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_2, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_cvp_pump = __pyx_t_1;
__pyx_t_1 = 0;
3568: else:
+3569: cvp_pump = 999.0
/*else*/ {
__Pyx_INCREF(__pyx_float_999_0);
__pyx_v_cvp_pump = __pyx_float_999_0;
}
__pyx_L4:;
3570:
+3571: return swp_pump, cvp_pump
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_swp_pump); __Pyx_GIVEREF(__pyx_v_swp_pump); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_swp_pump); __Pyx_INCREF(__pyx_v_cvp_pump); __Pyx_GIVEREF(__pyx_v_cvp_pump); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_cvp_pump); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
3572:
+3573: def estimate_project_pumping(self, t, proj_surplus, max_pumping, swp_AS, cvp_AS, max_tax_free, flood_release, wyt):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_57estimate_project_pumping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_57estimate_project_pumping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_proj_surplus = 0;
PyObject *__pyx_v_max_pumping = 0;
PyObject *__pyx_v_swp_AS = 0;
PyObject *__pyx_v_cvp_AS = 0;
PyObject *__pyx_v_max_tax_free = 0;
PyObject *__pyx_v_flood_release = 0;
PyObject *__pyx_v_wyt = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("estimate_project_pumping (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_proj_surplus,&__pyx_n_s_max_pumping,&__pyx_n_s_swp_AS,&__pyx_n_s_cvp_AS,&__pyx_n_s_max_tax_free,&__pyx_n_s_flood_release,&__pyx_n_s_wyt,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proj_surplus)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 1); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_pumping)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 2); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AS)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 3); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AS)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 4); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 5); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_release)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 6); __PYX_ERR(0, 3573, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, 7); __PYX_ERR(0, 3573, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "estimate_project_pumping") < 0)) __PYX_ERR(0, 3573, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
}
__pyx_v_t = values[0];
__pyx_v_proj_surplus = values[1];
__pyx_v_max_pumping = values[2];
__pyx_v_swp_AS = values[3];
__pyx_v_cvp_AS = values[4];
__pyx_v_max_tax_free = values[5];
__pyx_v_flood_release = values[6];
__pyx_v_wyt = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3573, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.estimate_project_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_56estimate_project_pumping(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_max_tax_free, __pyx_v_flood_release, __pyx_v_wyt);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_56estimate_project_pumping(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_proj_surplus, PyObject *__pyx_v_max_pumping, PyObject *__pyx_v_swp_AS, PyObject *__pyx_v_cvp_AS, PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_flood_release, PyObject *__pyx_v_wyt) {
PyObject *__pyx_v_dowy = NULL;
PyObject *__pyx_v_year_index = NULL;
PyObject *__pyx_v_tax_free_frac = NULL;
PyObject *__pyx_v_excess_storage = NULL;
PyObject *__pyx_v_available_storage = NULL;
PyObject *__pyx_v_max_pump = NULL;
PyObject *__pyx_v_expected_pumping = NULL;
PyObject *__pyx_v_key = NULL;
long __pyx_v_monthloop;
PyObject *__pyx_v_daysmonth = NULL;
PyObject *__pyx_v_dowyeom = NULL;
PyObject *__pyx_v_running_days = NULL;
PyObject *__pyx_v_start_m = NULL;
PyObject *__pyx_v_end_m = NULL;
PyObject *__pyx_v_total_tax_free = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("estimate_project_pumping", 0);
__Pyx_TraceCall("estimate_project_pumping", __pyx_f[0], 3573, 0, __PYX_ERR(0, 3573, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.estimate_project_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dowy);
__Pyx_XDECREF(__pyx_v_year_index);
__Pyx_XDECREF(__pyx_v_tax_free_frac);
__Pyx_XDECREF(__pyx_v_excess_storage);
__Pyx_XDECREF(__pyx_v_available_storage);
__Pyx_XDECREF(__pyx_v_max_pump);
__Pyx_XDECREF(__pyx_v_expected_pumping);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_daysmonth);
__Pyx_XDECREF(__pyx_v_dowyeom);
__Pyx_XDECREF(__pyx_v_running_days);
__Pyx_XDECREF(__pyx_v_start_m);
__Pyx_XDECREF(__pyx_v_end_m);
__Pyx_XDECREF(__pyx_v_total_tax_free);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+3574: dowy = self.dowy[t]
if (unlikely(__pyx_v_self->dowy == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3574, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_dowy = __pyx_t_1;
__pyx_t_1 = 0;
+3575: year_index = self.year[t] - self.starting_year
if (unlikely(__pyx_v_self->year == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3575, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->year, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_year_index = __pyx_t_3;
__pyx_t_3 = 0;
3576:
3577: # month_evaluate = m - 1
+3578: tax_free_frac = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_tax_free_frac = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3579: excess_storage = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_excess_storage = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3580: available_storage = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_available_storage = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3581: max_pump = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_max_pump = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3582: expected_pumping = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_expected_pumping = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3583: available_storage['swp'] = swp_AS
if (unlikely(PyDict_SetItem(__pyx_v_available_storage, __pyx_n_u_swp, __pyx_v_swp_AS) < 0)) __PYX_ERR(0, 3583, __pyx_L1_error)
+3584: available_storage['cvp'] = cvp_AS
if (unlikely(PyDict_SetItem(__pyx_v_available_storage, __pyx_n_u_cvp, __pyx_v_cvp_AS) < 0)) __PYX_ERR(0, 3584, __pyx_L1_error)
+3585: max_pump['swp'] = 6680.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 3585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3586: max_pump['cvp'] = 4300.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_float_4300_0, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_3) < 0)) __PYX_ERR(0, 3586, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3587: expected_pumping['swp'] = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_swp, __pyx_t_3) < 0)) __PYX_ERR(0, 3587, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3588: expected_pumping['swp']['taxed']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_taxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3588, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3589: expected_pumping['swp']['untaxed']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_untaxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3589, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3590: expected_pumping['swp']['gains']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_gains, __pyx_t_3) < 0)) __PYX_ERR(0, 3590, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3591: expected_pumping['cvp'] = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp, __pyx_t_3) < 0)) __PYX_ERR(0, 3591, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3592: expected_pumping['cvp']['taxed']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_taxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3592, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3593: expected_pumping['cvp']['untaxed']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_untaxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3593, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3594: expected_pumping['cvp']['gains']= np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_gains, __pyx_t_3) < 0)) __PYX_ERR(0, 3594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3595:
+3596: for key in ['swp', 'cvp']:
__pyx_t_3 = __pyx_tuple__26; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3596, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__26 = PyTuple_Pack(2, __pyx_n_u_swp, __pyx_n_u_cvp); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 3596, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26);
+3597: tax_free_frac[key] = min(max(available_storage[key]/max_tax_free[wyt][key][dowy], 0.0), 1.0)
__pyx_t_5 = 1.0;
__pyx_t_6 = 0.0;
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_available_storage, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_9) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_7);
__pyx_t_1 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_INCREF(__pyx_t_1);
__pyx_t_7 = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_9) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_7);
__pyx_t_1 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_tax_free_frac, __pyx_v_key, __pyx_t_7) < 0)) __PYX_ERR(0, 3597, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3598: excess_storage[key] = max(available_storage[key] - max_tax_free[wyt][key][dowy], 0.0)
__pyx_t_5 = 0.0;
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_available_storage, __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_9) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_excess_storage, __pyx_v_key, __pyx_t_2) < 0)) __PYX_ERR(0, 3598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3599: # if dowy < 123:
3600: # total_taxed = (123 + 92 - dowy)*max_pump[key] - (max_tax_free[wyt][key][dowy] - max_tax_free[wyt][key][122]) - max_tax_free[wyt][key][274]
3601: # elif dowy < 274:
3602: # total_taxed = (273 + 92 - dowy)*max_pump[key] - max_tax_free[wyt][key][dowy]
3603: # else:
3604: # total_taxed = (365 - dowy)*max_pump[key] - max_tax_free[wyt][key][dowy]
3605:
3606: #if month_evaluate > 8:
+3607: for monthloop in range(0, 12):
for (__pyx_t_10 = 0; __pyx_t_10 < 12; __pyx_t_10+=1) {
__pyx_v_monthloop = __pyx_t_10;
3608: # if month already happened this year, we are looping to next year
+3609: if self.dowy_eom[year_index][monthloop] < dowy:
if (unlikely(__pyx_v_self->dowy_eom == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3609, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy_eom, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dowy, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_9) {
/* … */
goto __pyx_L7;
}
+3610: daysmonth = self.days_in_month[year_index + 1][monthloop]
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3610, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_2);
__pyx_t_2 = 0;
+3611: dowyeom = self.dowy_eom[year_index + 1][monthloop]
if (unlikely(__pyx_v_self->dowy_eom == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3611, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy_eom, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_dowyeom, __pyx_t_2);
__pyx_t_2 = 0;
+3612: running_days = 365 - dowy + dowyeom
__pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_365, __pyx_v_dowy, 0x16D, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_v_dowyeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_running_days, __pyx_t_1); __pyx_t_1 = 0;
3613:
3614: else:
+3615: daysmonth = self.days_in_month[year_index][monthloop]
/*else*/ {
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3615, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3615, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3615, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_2);
__pyx_t_2 = 0;
+3616: dowyeom = self.dowy_eom[year_index][monthloop]
if (unlikely(__pyx_v_self->dowy_eom == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3616, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy_eom, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_dowyeom, __pyx_t_1);
__pyx_t_1 = 0;
+3617: running_days = dowyeom - dowy
__pyx_t_1 = PyNumber_Subtract(__pyx_v_dowyeom, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_running_days, __pyx_t_1); __pyx_t_1 = 0; } __pyx_L7:;
3618:
3619: # max_tax_free starts with total max_tax_free for water year at index 0, then amount left after day 0 in index 1, etc. So total_tax_free for October is index 0 minus index[31], November is [31]-[61],...
+3620: start_m = dowyeom - daysmonth + 1
__pyx_t_1 = PyNumber_Subtract(__pyx_v_dowyeom, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_start_m, __pyx_t_2); __pyx_t_2 = 0;
+3621: end_m = dowyeom + 1
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_dowyeom, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_end_m, __pyx_t_2); __pyx_t_2 = 0;
+3622: total_tax_free = max_tax_free[wyt][key][start_m] - max_tax_free[wyt][key][end_m]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_start_m); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_end_m); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_total_tax_free, __pyx_t_8); __pyx_t_8 = 0;
3623:
3624: #if excess_storage[key] > total_taxed and dowy < self.dowy_eom[monthloop]:
+3625: if monthloop == 3 or monthloop == 4:
switch (__pyx_v_monthloop) {
case 3:
case 4:
/* … */
break;
default:
+3626: max_pump['swp'] = 750.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyNumber_Multiply(__pyx_float_750_0, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_1) < 0)) __PYX_ERR(0, 3626, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3627: max_pump['cvp'] = 750.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyNumber_Multiply(__pyx_float_750_0, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_8) < 0)) __PYX_ERR(0, 3627, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3628: else:
+3629: max_pump['swp'] = 6680.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_1) < 0)) __PYX_ERR(0, 3629, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3630: max_pump['cvp'] = 4300.0*cfs_tafd
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyNumber_Multiply(__pyx_float_4300_0, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_8) < 0)) __PYX_ERR(0, 3630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; break; }
3631:
3632: # account for omr rules
+3633: if t > self.omr_rule_start - running_days:
__pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_self->omr_rule_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_v_running_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyObject_RichCompare(__pyx_v_t, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { /* … */ }
+3634: max_pump['swp'] = min(max_pump['swp'], max_pumping['swp'][monthloop]/daysmonth)
__pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3634, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_9) { __Pyx_INCREF(__pyx_t_8); __pyx_t_2 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_8) < 0)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3635: max_pump['cvp'] = min(max_pump['cvp'], max_pumping['cvp'][monthloop]/daysmonth)
__pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3635, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_9) { __Pyx_INCREF(__pyx_t_8); __pyx_t_1 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_8) < 0)) __PYX_ERR(0, 3635, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3636:
3637:
+3638: expected_pumping[key]['taxed'][monthloop] = max_pump[key]*daysmonth
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_taxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3639: expected_pumping[key]['untaxed'][monthloop] = min(max(proj_surplus[key][monthloop] + flood_release[key]*daysmonth,total_tax_free), max_pump[key]*daysmonth)
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_v_total_tax_free); __pyx_t_1 = __pyx_v_total_tax_free; __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_proj_surplus, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_release, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3639, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_9) { __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_8); __pyx_t_11 = __pyx_t_8; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_t_11); __pyx_t_1 = __pyx_t_11; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3639, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_11; __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3640: expected_pumping[key]['gains'][monthloop] = min(proj_surplus[key][monthloop] + flood_release[key]*daysmonth, max_pump[key]*daysmonth)
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_proj_surplus, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_release, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3640, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_9) { __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
3641:
+3642: return expected_pumping
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_expected_pumping); __pyx_r = __pyx_v_expected_pumping; goto __pyx_L0;
3643:
3644:
3645:
+3646: def find_pumping_release(self, m, da, year_index, start_storage, pump_max, month_demand, month_demand_must_fill, allocation, expected_pumping, flood_supply, available_storage, flood_storage, projected_carryover, current_carryover, max_tax_free, wyt, t, key):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_59find_pumping_release(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_59find_pumping_release(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_da = 0;
PyObject *__pyx_v_year_index = 0;
PyObject *__pyx_v_start_storage = 0;
CYTHON_UNUSED PyObject *__pyx_v_pump_max = 0;
PyObject *__pyx_v_month_demand = 0;
PyObject *__pyx_v_month_demand_must_fill = 0;
CYTHON_UNUSED PyObject *__pyx_v_allocation = 0;
PyObject *__pyx_v_expected_pumping = 0;
CYTHON_UNUSED PyObject *__pyx_v_flood_supply = 0;
PyObject *__pyx_v_available_storage = 0;
CYTHON_UNUSED PyObject *__pyx_v_flood_storage = 0;
PyObject *__pyx_v_projected_carryover = 0;
PyObject *__pyx_v_current_carryover = 0;
CYTHON_UNUSED PyObject *__pyx_v_max_tax_free = 0;
PyObject *__pyx_v_wyt = 0;
CYTHON_UNUSED PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_pumping_release (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_da,&__pyx_n_s_year_index,&__pyx_n_s_start_storage,&__pyx_n_s_pump_max,&__pyx_n_s_month_demand,&__pyx_n_s_month_demand_must_fill,&__pyx_n_s_allocation,&__pyx_n_s_expected_pumping,&__pyx_n_s_flood_supply,&__pyx_n_s_available_storage,&__pyx_n_s_flood_storage,&__pyx_n_s_projected_carryover,&__pyx_n_s_current_carryover,&__pyx_n_s_max_tax_free,&__pyx_n_s_wyt,&__pyx_n_s_t,&__pyx_n_s_key,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 1); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 2); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_storage)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 3); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pump_max)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 4); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_month_demand)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 5); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_month_demand_must_fill)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 6); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocation)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 7); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_expected_pumping)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 8); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_supply)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 9); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_available_storage)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 10); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_storage)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 11); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_projected_carryover)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 12); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_current_carryover)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 13); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 14); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 15:
if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 15); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 16:
if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 16); __PYX_ERR(0, 3646, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 17:
if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, 17); __PYX_ERR(0, 3646, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_pumping_release") < 0)) __PYX_ERR(0, 3646, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 18) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
}
__pyx_v_m = values[0];
__pyx_v_da = values[1];
__pyx_v_year_index = values[2];
__pyx_v_start_storage = values[3];
__pyx_v_pump_max = values[4];
__pyx_v_month_demand = values[5];
__pyx_v_month_demand_must_fill = values[6];
__pyx_v_allocation = values[7];
__pyx_v_expected_pumping = values[8];
__pyx_v_flood_supply = values[9];
__pyx_v_available_storage = values[10];
__pyx_v_flood_storage = values[11];
__pyx_v_projected_carryover = values[12];
__pyx_v_current_carryover = values[13];
__pyx_v_max_tax_free = values[14];
__pyx_v_wyt = values[15];
__pyx_v_t = values[16];
__pyx_v_key = values[17];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 18, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3646, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_pumping_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_58find_pumping_release(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_v_start_storage, __pyx_v_pump_max, __pyx_v_month_demand, __pyx_v_month_demand_must_fill, __pyx_v_allocation, __pyx_v_expected_pumping, __pyx_v_flood_supply, __pyx_v_available_storage, __pyx_v_flood_storage, __pyx_v_projected_carryover, __pyx_v_current_carryover, __pyx_v_max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_58find_pumping_release(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_m, PyObject *__pyx_v_da, PyObject *__pyx_v_year_index, PyObject *__pyx_v_start_storage, CYTHON_UNUSED PyObject *__pyx_v_pump_max, PyObject *__pyx_v_month_demand, PyObject *__pyx_v_month_demand_must_fill, CYTHON_UNUSED PyObject *__pyx_v_allocation, PyObject *__pyx_v_expected_pumping, CYTHON_UNUSED PyObject *__pyx_v_flood_supply, PyObject *__pyx_v_available_storage, CYTHON_UNUSED PyObject *__pyx_v_flood_storage, PyObject *__pyx_v_projected_carryover, PyObject *__pyx_v_current_carryover, CYTHON_UNUSED PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_wyt, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_key) {
PyObject *__pyx_v_month_evaluate = NULL;
PyObject *__pyx_v_expected_demands = NULL;
PyObject *__pyx_v_expected_inflow = NULL;
PyObject *__pyx_v_expected_untaxed = NULL;
PyObject *__pyx_v_expected_taxed = NULL;
PyObject *__pyx_v_net_monthly = NULL;
PyObject *__pyx_v_next_month_storage = NULL;
PyObject *__pyx_v_this_month_days = NULL;
PyObject *__pyx_v_article21 = NULL;
PyObject *__pyx_v_numdays_fillup = NULL;
PyObject *__pyx_v_numdays_fillup_next_year = NULL;
PyObject *__pyx_v_total_days_remaining = NULL;
long __pyx_v_pumping_toggle;
long __pyx_v_tax_free_toggle;
long __pyx_v_pumping_toggle_override;
long __pyx_v_tax_free_toggle_override;
CYTHON_UNUSED long __pyx_v_exceed_toggle_override;
PyObject *__pyx_v_cross_counter_y = NULL;
long __pyx_v_cross_counter_wy;
long __pyx_v_end_counter;
CYTHON_UNUSED double __pyx_v_extra_demand;
CYTHON_UNUSED PyObject *__pyx_v_carryover_adjust = NULL;
PyObject *__pyx_v_partial_month_remaining = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_pumping_release", 0);
__Pyx_TraceCall("find_pumping_release", __pyx_f[0], 3646, 0, __PYX_ERR(0, 3646, __pyx_L1_error));
__Pyx_INCREF(__pyx_v_available_storage);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_pumping_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_month_evaluate);
__Pyx_XDECREF(__pyx_v_expected_demands);
__Pyx_XDECREF(__pyx_v_expected_inflow);
__Pyx_XDECREF(__pyx_v_expected_untaxed);
__Pyx_XDECREF(__pyx_v_expected_taxed);
__Pyx_XDECREF(__pyx_v_net_monthly);
__Pyx_XDECREF(__pyx_v_next_month_storage);
__Pyx_XDECREF(__pyx_v_this_month_days);
__Pyx_XDECREF(__pyx_v_article21);
__Pyx_XDECREF(__pyx_v_numdays_fillup);
__Pyx_XDECREF(__pyx_v_numdays_fillup_next_year);
__Pyx_XDECREF(__pyx_v_total_days_remaining);
__Pyx_XDECREF(__pyx_v_cross_counter_y);
__Pyx_XDECREF(__pyx_v_carryover_adjust);
__Pyx_XDECREF(__pyx_v_partial_month_remaining);
__Pyx_XDECREF(__pyx_v_available_storage);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
3647: ##this function is used by the swpdelta & cvpdelta contracts to manage san luis reservoir storage
3648: ##and coordinate pumping at the delta
3649: ##state and federal storage portions managed seperately
3650:
+3651: month_evaluate = m - 1
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_month_evaluate = __pyx_t_1; __pyx_t_1 = 0;
3652: # first_month_frac = max(self.days_in_month[year_index][month_evaluate] - da, 0.0)/self.days_in_month[year_index][month_evaluate]
3653:
3654:
3655: ###Initial storage projections - current month
3656: ##calculate expected deliveries during this month from san luis
3657: #expected_demands = (month_demand[wyt][month_evaluate]*allocation + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index][month_evaluate]
+3658: expected_demands = (month_demand[wyt][month_evaluate] + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index][month_evaluate]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3658, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_expected_demands = __pyx_t_3; __pyx_t_3 = 0;
+3659: expected_inflow = expected_pumping['gains'][month_evaluate]/self.days_in_month[year_index][month_evaluate]
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3659, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_expected_inflow = __pyx_t_3; __pyx_t_3 = 0;
+3660: expected_untaxed = (expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])*(1.0 - da/self.days_in_month[year_index][month_evaluate])
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3660, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_da, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_expected_untaxed = __pyx_t_2; __pyx_t_2 = 0;
+3661: expected_taxed = (expected_pumping['taxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])*(1.0 - da/self.days_in_month[year_index][month_evaluate])
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_taxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3661, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_v_da, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_expected_taxed = __pyx_t_3; __pyx_t_3 = 0;
3662:
3663: #how much 'unstored' pumping can we expect into San Luis?
3664: #self.month_averages comes from self.predict_delta_gains
3665: #proj_surplus & proj_surplus2 are generated in the northern model, from 8RI regression in self.predict_delta_gains
+3666: if month_evaluate == 3 or month_evaluate == 4:
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3666, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3666, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+3667: expected_inflow = 0.75
__Pyx_INCREF(__pyx_float_0_75); __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_float_0_75);
3668: #expected monthly change in san luis storage
+3669: net_monthly = (expected_inflow - expected_demands)*max(self.days_in_month[year_index][month_evaluate] - da, 0.0)
__pyx_t_3 = PyNumber_Subtract(__pyx_v_expected_inflow, __pyx_v_expected_demands); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0.0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3669, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_da); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __pyx_t_8; __pyx_t_8 = 0; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_net_monthly = __pyx_t_1; __pyx_t_1 = 0;
3670: ##Enter into a loop for projecting storage & pumping forward one month at a time
3671: ##start with current estimates
+3672: next_month_storage = start_storage#running storage levels
__Pyx_INCREF(__pyx_v_start_storage);
__pyx_v_next_month_storage = __pyx_v_start_storage;
+3673: this_month_days = max(self.days_in_month[year_index][month_evaluate] - da, 0.0)#running days in a month
__pyx_t_6 = 0.0;
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3673, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_da); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_4) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_2 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_2;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_this_month_days = __pyx_t_1;
__pyx_t_1 = 0;
+3674: article21 = 0.0#initialize article 21 release estimates
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_article21 = __pyx_float_0_0;
+3675: numdays_fillup = 999.9#initialize numdays_fillup variable
__Pyx_INCREF(__pyx_float_999_9);
__pyx_v_numdays_fillup = __pyx_float_999_9;
+3676: numdays_fillup_next_year = 999.9
__Pyx_INCREF(__pyx_float_999_9);
__pyx_v_numdays_fillup_next_year = __pyx_float_999_9;
+3677: total_days_remaining = 0.0#used for estimates of how long san luis will take to fill up (for districts to make carryover decisions)
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_total_days_remaining = __pyx_float_0_0;
3678:
+3679: pumping_toggle = 1#toggle for releasing water to maximum pumping levels
__pyx_v_pumping_toggle = 1;
+3680: tax_free_toggle = 1#toggle for releasing water to 'tax free' pumping levels
__pyx_v_tax_free_toggle = 1;
+3681: pumping_toggle_override = 0#toggle for releasing water to maximum pumping levels
__pyx_v_pumping_toggle_override = 0;
+3682: tax_free_toggle_override = 0#toggle for releasing water to 'tax free' pumping levels
__pyx_v_tax_free_toggle_override = 0;
+3683: exceed_toggle_override = 0
__pyx_v_exceed_toggle_override = 0;
3684: ##loop through all months until april (april/may have very limited pumping, should not plan for any pumping to occur then)
3685: ##this loop helps to project storage in san luis up to a year out > so we know in advance if we need to pump or will be filling the reservoir
3686: ##note: this loop will go through one water year and into the next one
+3687: cross_counter_y = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_cross_counter_y = __pyx_int_0;
+3688: cross_counter_wy = 0
__pyx_v_cross_counter_wy = 0;
+3689: end_counter = 0
__pyx_v_end_counter = 0;
+3690: extra_demand = 0.0
__pyx_v_extra_demand = 0.0;
+3691: carryover_adjust = current_carryover
__Pyx_INCREF(__pyx_v_current_carryover);
__pyx_v_carryover_adjust = __pyx_v_current_carryover;
+3692: while end_counter == 0:
while (1) {
__pyx_t_4 = ((__pyx_v_end_counter == 0) != 0);
if (!__pyx_t_4) break;
3693: #while month_evaluate == m - 1:
3694: #estimate storage at the end of this month by adding monthly change to the running storage tally
+3695: next_month_storage += net_monthly
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_next_month_storage, __pyx_v_net_monthly); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_1); __pyx_t_1 = 0;
3696:
+3697: if net_monthly > 0.0:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_net_monthly, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3697, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3697, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L8; }
+3698: partial_month_remaining = max(1 - max(next_month_storage - 1020.0, 0.0)/net_monthly, 0.0)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
__pyx_t_6 = 0.0;
__pyx_t_9 = 0.0;
__pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_v_next_month_storage, __pyx_float_1020_0, 1020.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_net_monthly); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_4) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3698, __pyx_L1_error)
}
__pyx_t_2 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_partial_month_remaining, __pyx_t_8);
__pyx_t_8 = 0;
3699: else:
+3700: next_month_storage = min(1020.0 + net_monthly, next_month_storage)
/*else*/ {
__Pyx_INCREF(__pyx_v_next_month_storage);
__pyx_t_8 = __pyx_v_next_month_storage;
__pyx_t_2 = __Pyx_PyFloat_AddCObj(__pyx_float_1020_0, __pyx_v_net_monthly, 1020.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3700, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3700, __pyx_L1_error)
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3700, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_8);
__pyx_t_8 = 0;
+3701: partial_month_remaining = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_partial_month_remaining, __pyx_float_0_0); } __pyx_L8:;
+3702: if next_month_storage > 1020.0:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3702, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ }
+3703: exceed_toggle_override = 1
__pyx_v_exceed_toggle_override = 1;
3704: ##can we reach the storage targets only using 'tax free' pumping?
3705: ##how much water can we expect to pump w/o additional E/I tax through the end of the month?
3706: #if dowy <= self.dowy_eom[month_evaluate]:#running water year is the same as the beginning of the loop
3707: #how much 'tax free' pumping through the end of this month? - total tax free remaining at the current simulation day, minus total tax free remaining at the end of the looped month
3708: #running_tax_free_pumping = self.max_tax_free[wyt][key][dowy] - self.max_tax_free[wyt][key][self.dowy_eom[month_evaluate]]
3709: #else:#looped into the next water year, so we have to calculate the tax free pumping remaining through the end of the current year, then add in the tax free remaining through the looped month in the next year
3710: #running_tax_free_pumping = self.max_tax_free[wyt][key][dowy] + self.max_tax_free[wyt][key][0] - self.max_tax_free[wyt][key][self.dowy_eom[month_evaluate]]
3711: #running_tax_free_pumping will be added to the net_month storage variable, so we don't want to double-count 'unstored pumping'
3712: #if running_tax_free_pumping > available_pumping:
3713: #running_tax_free_pumping = available_pumping
3714: ##note - beginning month = m; looped month = month_evaluate
+3715: if start_storage > 1000.0:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_start_storage, __pyx_float_1000_0, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3715, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3715, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ }
3716: #if san luis storage is currently greater than capacity, no pumping, article21 releases triggered
+3717: pumping_toggle = min(0, pumping_toggle)
__pyx_t_10 = __pyx_v_pumping_toggle;
__pyx_t_11 = 0;
if (((__pyx_t_10 < __pyx_t_11) != 0)) {
__pyx_t_12 = __pyx_t_10;
} else {
__pyx_t_12 = __pyx_t_11;
}
__pyx_v_pumping_toggle = __pyx_t_12;
+3718: tax_free_toggle = min(0, tax_free_toggle)
__pyx_t_12 = __pyx_v_tax_free_toggle;
__pyx_t_10 = 0;
if (((__pyx_t_12 < __pyx_t_10) != 0)) {
__pyx_t_11 = __pyx_t_12;
} else {
__pyx_t_11 = __pyx_t_10;
}
__pyx_v_tax_free_toggle = __pyx_t_11;
+3719: article21 = max(next_month_storage - 1000.0, start_storage - 1000.0, article21)
__pyx_t_8 = __Pyx_PyFloat_SubtractObjC(__pyx_v_start_storage, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_article21); __pyx_t_1 = __pyx_v_article21; __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_v_next_month_storage, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3719, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_8); __pyx_t_3 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3719, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_8); __pyx_t_8 = 0;
+3720: numdays_fillup = 0.0#if this condition is hit, no more days needed to fill reservoir (already full)
__Pyx_INCREF(__pyx_float_0_0); __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_float_0_0);
+3721: if next_month_storage < 1020.0:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_1020_0, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3721, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3721, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L11; }
+3722: article21 = max(0.0, article21)
__Pyx_INCREF(__pyx_v_article21); __pyx_t_8 = __pyx_v_article21; __pyx_t_6 = 0.0; __pyx_t_1 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3722, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3722, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_8); __pyx_t_3 = __pyx_t_8; } else { __pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_8); __pyx_t_8 = 0;
3723: #if expected storage is less than 0 in any month, pump at max, no article 21
+3724: if (next_month_storage + expected_untaxed) > 1020.0:
__pyx_t_8 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3724, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3724, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L12; }
+3725: if net_monthly+(expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate]) > 0.0:
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_v_net_monthly, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ }
+3726: partial_month_remaining = max(1 - max(next_month_storage + expected_untaxed - 1020.0, 0.0)/(net_monthly+(expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])), 0.0)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
__pyx_t_6 = 0.0;
__pyx_t_9 = 0.0;
__pyx_t_3 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1020_0, 1020.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_4) {
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Add(__pyx_v_net_monthly, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_2, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_4) {
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_2 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3726, __pyx_L1_error)
}
__pyx_t_8 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_partial_month_remaining, __pyx_t_1);
__pyx_t_1 = 0;
3727:
+3728: numdays_fillup = min(numdays_fillup,total_days_remaining + partial_month_remaining)
__pyx_t_1 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_numdays_fillup); __pyx_t_8 = __pyx_v_numdays_fillup; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3728, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_8); __pyx_t_2 = __pyx_t_8; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_1); __pyx_t_1 = 0;
+3729: if cross_counter_wy == 1:
__pyx_t_4 = ((__pyx_v_cross_counter_wy == 1) != 0);
if (__pyx_t_4) {
/* … */
}
+3730: numdays_fillup_next_year = min(numdays_fillup_next_year, total_days_remaining + partial_month_remaining)
__pyx_t_1 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_numdays_fillup_next_year); __pyx_t_2 = __pyx_v_numdays_fillup_next_year; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3730, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_numdays_fillup_next_year, __pyx_t_1); __pyx_t_1 = 0;
3731: else:
+3732: numdays_fillup = min(numdays_fillup, 999.9)#reservoir does not fill up in this condition (if it was full in prior loop months, retains its value)
/*else*/ {
__pyx_t_6 = 999.9;
__Pyx_INCREF(__pyx_v_numdays_fillup);
__pyx_t_1 = __pyx_v_numdays_fillup;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3732, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3732, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_8 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L12:;
+3733: if next_month_storage + expected_untaxed > 1020.0:
__pyx_t_1 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L15; }
+3734: pumping_toggle = min(0, pumping_toggle)
__pyx_t_11 = __pyx_v_pumping_toggle;
__pyx_t_12 = 0;
if (((__pyx_t_11 < __pyx_t_12) != 0)) {
__pyx_t_10 = __pyx_t_11;
} else {
__pyx_t_10 = __pyx_t_12;
}
__pyx_v_pumping_toggle = __pyx_t_10;
+3735: tax_free_toggle = min(0, tax_free_toggle)
__pyx_t_10 = __pyx_v_tax_free_toggle;
__pyx_t_11 = 0;
if (((__pyx_t_10 < __pyx_t_11) != 0)) {
__pyx_t_12 = __pyx_t_10;
} else {
__pyx_t_12 = __pyx_t_11;
}
__pyx_v_tax_free_toggle = __pyx_t_12;
+3736: elif next_month_storage + expected_taxed > 1020.0:
__pyx_t_8 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_taxed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3736, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3736, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L15; }
+3737: pumping_toggle = min(0, pumping_toggle)
__pyx_t_12 = __pyx_v_pumping_toggle;
__pyx_t_10 = 0;
if (((__pyx_t_12 < __pyx_t_10) != 0)) {
__pyx_t_11 = __pyx_t_12;
} else {
__pyx_t_11 = __pyx_t_10;
}
__pyx_v_pumping_toggle = __pyx_t_11;
+3738: tax_free_toggle = min(0, tax_free_toggle)
__pyx_t_11 = __pyx_v_tax_free_toggle;
__pyx_t_12 = 0;
if (((__pyx_t_11 < __pyx_t_12) != 0)) {
__pyx_t_10 = __pyx_t_11;
} else {
__pyx_t_10 = __pyx_t_12;
}
__pyx_v_tax_free_toggle = __pyx_t_10;
3739: else:
+3740: pumping_toggle = min(1, pumping_toggle)
/*else*/ {
__pyx_t_10 = __pyx_v_pumping_toggle;
__pyx_t_11 = 1;
if (((__pyx_t_10 < __pyx_t_11) != 0)) {
__pyx_t_12 = __pyx_t_10;
} else {
__pyx_t_12 = __pyx_t_11;
}
__pyx_v_pumping_toggle = __pyx_t_12;
+3741: tax_free_toggle = min(1, tax_free_toggle)
__pyx_t_12 = __pyx_v_tax_free_toggle;
__pyx_t_10 = 1;
if (((__pyx_t_12 < __pyx_t_10) != 0)) {
__pyx_t_11 = __pyx_t_12;
} else {
__pyx_t_11 = __pyx_t_10;
}
__pyx_v_tax_free_toggle = __pyx_t_11;
}
__pyx_L15:;
3742: else:
+3743: article21 = max(0.0, article21)
/*else*/ {
__Pyx_INCREF(__pyx_v_article21);
__pyx_t_1 = __pyx_v_article21;
__pyx_t_6 = 0.0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_4) {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_8 = __pyx_t_1;
} else {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = __pyx_t_2;
__pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_1);
__pyx_t_1 = 0;
+3744: pumping_toggle = min(0, pumping_toggle)
__pyx_t_11 = __pyx_v_pumping_toggle;
__pyx_t_12 = 0;
if (((__pyx_t_11 < __pyx_t_12) != 0)) {
__pyx_t_10 = __pyx_t_11;
} else {
__pyx_t_10 = __pyx_t_12;
}
__pyx_v_pumping_toggle = __pyx_t_10;
+3745: tax_free_toggle = min(0, tax_free_toggle)
__pyx_t_10 = __pyx_v_tax_free_toggle;
__pyx_t_11 = 0;
if (((__pyx_t_10 < __pyx_t_11) != 0)) {
__pyx_t_12 = __pyx_t_10;
} else {
__pyx_t_12 = __pyx_t_11;
}
__pyx_v_tax_free_toggle = __pyx_t_12;
3746: #article21 flows are the expected extra flows divided by the number of days until the end of the month
+3747: numdays_fillup = min(numdays_fillup,total_days_remaining+partial_month_remaining)
__pyx_t_1 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_numdays_fillup); __pyx_t_8 = __pyx_v_numdays_fillup; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3747, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3747, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_8); __pyx_t_2 = __pyx_t_8; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_1); __pyx_t_1 = 0;
+3748: if cross_counter_wy == 1:
__pyx_t_4 = ((__pyx_v_cross_counter_wy == 1) != 0);
if (__pyx_t_4) {
/* … */
}
}
__pyx_L11:;
+3749: numdays_fillup_next_year = min(numdays_fillup_next_year, total_days_remaining + partial_month_remaining)
__pyx_t_1 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_numdays_fillup_next_year); __pyx_t_2 = __pyx_v_numdays_fillup_next_year; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3749, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_numdays_fillup_next_year, __pyx_t_1); __pyx_t_1 = 0;
3750:
3751: ##note - beginning month = m; looped month = month_evaluate
3752:
3753: ##After we calculate what the pumping for SL based off projections from this month, we step the month
3754: ##forward and project new storage & pumping for the next month, and re-evaluate all releases. From Oct-Mar, if
3755: ##any month triggers the pumping to stop, the pumping stops. From June-Sept, if any month triggers the pumping, the
3756: ##pumping occurs
+3757: month_evaluate += 1
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_month_evaluate, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_month_evaluate, __pyx_t_1); __pyx_t_1 = 0;
+3758: if month_evaluate > 11:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_month_evaluate, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3758, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ }
+3759: month_evaluate = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_month_evaluate, __pyx_int_0);
+3760: cross_counter_y = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_cross_counter_y, __pyx_int_1);
+3761: carryover_adjust = projected_carryover
__Pyx_INCREF(__pyx_v_projected_carryover); __Pyx_DECREF_SET(__pyx_v_carryover_adjust, __pyx_v_projected_carryover);
+3762: if month_evaluate == m-1:
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_RichCompare(__pyx_v_month_evaluate, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3762, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3762, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ }
+3763: end_counter = 1
__pyx_v_end_counter = 1;
3764:
+3765: if next_month_storage < 0.0 and cross_counter_y == 0:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3765, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3765, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L20_bool_binop_done; } __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_cross_counter_y, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3765, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L20_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+3766: tax_free_toggle_override = 1
__pyx_v_tax_free_toggle_override = 1;
+3767: if m == 7 or m == 8 or m == 9:
__pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_7, 7, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L23_bool_binop_done; } __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_8, 8, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L23_bool_binop_done; } __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L23_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+3768: tax_free_toggle_override = 1
__pyx_v_tax_free_toggle_override = 1;
+3769: if month_evaluate == 9:
__pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3769, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { /* … */ }
+3770: expected_untaxed = max(expected_untaxed + min(next_month_storage, 0.0), 0.0)
__pyx_t_6 = 0.0;
__pyx_t_9 = 0.0;
__Pyx_INCREF(__pyx_v_next_month_storage);
__pyx_t_8 = __pyx_v_next_month_storage;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Add(__pyx_v_expected_untaxed, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_4) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_expected_untaxed, __pyx_t_8);
__pyx_t_8 = 0;
+3771: available_storage += min(next_month_storage, 0.0)
__pyx_t_6 = 0.0;
__Pyx_INCREF(__pyx_v_next_month_storage);
__pyx_t_8 = __pyx_v_next_month_storage;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3771, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3771, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3771, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3771, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_available_storage, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3771, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_available_storage, __pyx_t_8);
__pyx_t_8 = 0;
+3772: if m < 4 or m > 9 or key == 'cvp':
__pyx_t_8 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3772, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3772, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L28_bool_binop_done; } __pyx_t_8 = PyObject_RichCompare(__pyx_v_m, __pyx_int_9, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3772, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3772, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L28_bool_binop_done; } __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_cvp, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3772, __pyx_L1_error) __pyx_t_4 = __pyx_t_5; __pyx_L28_bool_binop_done:; if (__pyx_t_4) { /* … */ goto __pyx_L27; }
+3773: next_month_storage = max(next_month_storage, 0.0)
__pyx_t_6 = 0.0;
__Pyx_INCREF(__pyx_v_next_month_storage);
__pyx_t_8 = __pyx_v_next_month_storage;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3773, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3773, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_4) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_8);
__pyx_t_8 = 0;
3774: else:
+3775: next_month_storage = max(next_month_storage, 0.0)
/*else*/ {
__pyx_t_6 = 0.0;
__Pyx_INCREF(__pyx_v_next_month_storage);
__pyx_t_8 = __pyx_v_next_month_storage;
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3775, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3775, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_8);
__pyx_t_8 = 0;
}
__pyx_L27:;
+3776: carryover_adjust = projected_carryover
__Pyx_INCREF(__pyx_v_projected_carryover); __Pyx_DECREF_SET(__pyx_v_carryover_adjust, __pyx_v_projected_carryover);
+3777: cross_counter_wy = 1
__pyx_v_cross_counter_wy = 1;
3778:
+3779: expected_demands = (month_demand[wyt][month_evaluate] + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index+cross_counter_y][month_evaluate]
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_month_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_month_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3779, __pyx_L1_error) } __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_expected_demands, __pyx_t_1); __pyx_t_1 = 0;
+3780: expected_inflow = expected_pumping['gains'][month_evaluate]/self.days_in_month[year_index+cross_counter_y][month_evaluate]
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3780, __pyx_L1_error) } __pyx_t_1 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_t_8); __pyx_t_8 = 0;
+3781: expected_untaxed += (expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])
__pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_expected_untaxed, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_expected_untaxed, __pyx_t_3); __pyx_t_3 = 0;
+3782: expected_taxed += (expected_pumping['taxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_taxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_expected_taxed, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_expected_taxed, __pyx_t_1); __pyx_t_1 = 0;
3783: #how much 'unstored' pumping can we expect into San Luis?
3784: #self.month_averages comes from self.predict_delta_gains
3785: #proj_surplus & proj_surplus2 are generated in the northern model, from 8RI regression in self.predict_delta_gains
+3786: if month_evaluate == 3 or month_evaluate == 4:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L32_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L32_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+3787: expected_inflow = 0.75
__Pyx_INCREF(__pyx_float_0_75); __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_float_0_75);
3788: #expected monthly change in san luis storage
+3789: net_monthly = (expected_inflow - expected_demands)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
__pyx_t_1 = PyNumber_Subtract(__pyx_v_expected_inflow, __pyx_v_expected_demands); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->days_in_month == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3789, __pyx_L1_error) } __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_net_monthly, __pyx_t_8); __pyx_t_8 = 0;
+3790: total_days_remaining += this_month_days
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_total_days_remaining, __pyx_v_this_month_days); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_total_days_remaining, __pyx_t_8); __pyx_t_8 = 0;
+3791: this_month_days = self.days_in_month[year_index+cross_counter_y][month_evaluate]
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3791, __pyx_L1_error)
}
__pyx_t_8 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3791, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3791, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3791, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_this_month_days, __pyx_t_8);
__pyx_t_8 = 0;
}
3792:
+3793: return max(pumping_toggle, pumping_toggle_override), max(tax_free_toggle, tax_free_toggle_override), article21, numdays_fillup, numdays_fillup_next_year
__Pyx_XDECREF(__pyx_r); __pyx_t_12 = __pyx_v_pumping_toggle_override; __pyx_t_10 = __pyx_v_pumping_toggle; if (((__pyx_t_12 > __pyx_t_10) != 0)) { __pyx_t_11 = __pyx_t_12; } else { __pyx_t_11 = __pyx_t_10; } __pyx_t_8 = __Pyx_PyInt_From_long(__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __pyx_v_tax_free_toggle_override; __pyx_t_12 = __pyx_v_tax_free_toggle; if (((__pyx_t_11 > __pyx_t_12) != 0)) { __pyx_t_10 = __pyx_t_11; } else { __pyx_t_10 = __pyx_t_12; } __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_article21); __Pyx_GIVEREF(__pyx_v_article21); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_article21); __Pyx_INCREF(__pyx_v_numdays_fillup); __Pyx_GIVEREF(__pyx_v_numdays_fillup); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_numdays_fillup); __Pyx_INCREF(__pyx_v_numdays_fillup_next_year); __Pyx_GIVEREF(__pyx_v_numdays_fillup_next_year); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_numdays_fillup_next_year); __pyx_t_8 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
3794:
3795: #####################################################################################################################
3796: #####################################################################################################################
3797: #####################################################################################################################
3798:
3799: #####################################################################################################################
3800: ############################# State Variables that use data from more than one obejct class#########################
3801: #####################################################################################################################
+3802: def project_urban_pumping(self, da, dowy, m, wateryear, year_index, total_delta_pumping, projected_allocation_cvp, sri):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_61project_urban_pumping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_61project_urban_pumping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_da = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_wateryear = 0;
PyObject *__pyx_v_year_index = 0;
PyObject *__pyx_v_total_delta_pumping = 0;
PyObject *__pyx_v_projected_allocation_cvp = 0;
CYTHON_UNUSED PyObject *__pyx_v_sri = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("project_urban_pumping (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_da,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_wateryear,&__pyx_n_s_year_index,&__pyx_n_s_total_delta_pumping,&__pyx_n_s_projected_allocation_cvp,&__pyx_n_s_sri,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 1); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 2); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 3); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 4); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_total_delta_pumping)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 5); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_projected_allocation_cvp)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 6); __PYX_ERR(0, 3802, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sri)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, 7); __PYX_ERR(0, 3802, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "project_urban_pumping") < 0)) __PYX_ERR(0, 3802, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
}
__pyx_v_da = values[0];
__pyx_v_dowy = values[1];
__pyx_v_m = values[2];
__pyx_v_wateryear = values[3];
__pyx_v_year_index = values[4];
__pyx_v_total_delta_pumping = values[5];
__pyx_v_projected_allocation_cvp = values[6];
__pyx_v_sri = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3802, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.project_urban_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_60project_urban_pumping(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_da, __pyx_v_dowy, __pyx_v_m, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_total_delta_pumping, __pyx_v_projected_allocation_cvp, __pyx_v_sri);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_60project_urban_pumping(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_da, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_wateryear, PyObject *__pyx_v_year_index, PyObject *__pyx_v_total_delta_pumping, PyObject *__pyx_v_projected_allocation_cvp, CYTHON_UNUSED PyObject *__pyx_v_sri) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_urban_list = NULL;
PyObject *__pyx_v_projected_allocation = NULL;
Py_ssize_t __pyx_v_x;
PyObject *__pyx_v_sri_estimate = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_v_start_of_month = NULL;
PyObject *__pyx_v_monthloop = NULL;
PyObject *__pyx_v_monthcounter = NULL;
PyObject *__pyx_v_cross_counter_y = NULL;
PyObject *__pyx_v_start_next_month = NULL;
PyObject *__pyx_v_district_keys = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("project_urban_pumping", 0);
__Pyx_TraceCall("project_urban_pumping", __pyx_f[0], 3802, 0, __PYX_ERR(0, 3802, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_AddTraceback("calfews_src.model_cy.Model.project_urban_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_urban_list);
__Pyx_XDECREF(__pyx_v_projected_allocation);
__Pyx_XDECREF(__pyx_v_sri_estimate);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XDECREF(__pyx_v_start_of_month);
__Pyx_XDECREF(__pyx_v_monthloop);
__Pyx_XDECREF(__pyx_v_monthcounter);
__Pyx_XDECREF(__pyx_v_cross_counter_y);
__Pyx_XDECREF(__pyx_v_start_next_month);
__Pyx_XDECREF(__pyx_v_district_keys);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
3803: cdef District district_obj
3804: cdef Private private_obj
3805:
+3806: urban_list = [self.socal, self.centralcoast, self.southbay]
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->socal)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->socal)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->socal)); __Pyx_INCREF(((PyObject *)__pyx_v_self->centralcoast)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->centralcoast)); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->centralcoast)); __Pyx_INCREF(((PyObject *)__pyx_v_self->southbay)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->southbay)); PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->southbay)); __pyx_v_urban_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3807: projected_allocation = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_projected_allocation = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3808: projected_allocation['swp'] = total_delta_pumping
if (unlikely(PyDict_SetItem(__pyx_v_projected_allocation, __pyx_n_u_swp, __pyx_v_total_delta_pumping) < 0)) __PYX_ERR(0, 3808, __pyx_L1_error)
+3809: projected_allocation['cvp'] = projected_allocation_cvp
if (unlikely(PyDict_SetItem(__pyx_v_projected_allocation, __pyx_n_u_cvp, __pyx_v_projected_allocation_cvp) < 0)) __PYX_ERR(0, 3809, __pyx_L1_error)
+3810: if dowy == 0:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3810, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+3811: for x in range(0, len(self.socal.hist_demand_dict['annual_sorted'][dowy])):
if (unlikely(__pyx_v_self->socal->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3811, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->socal->hist_demand_dict, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3811, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_x = __pyx_t_6;
+3812: if total_delta_pumping < self.socal.hist_demand_dict['annual_sorted'][dowy][x]:
if (unlikely(__pyx_v_self->socal->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3812, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->socal->hist_demand_dict, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_x, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_v_total_delta_pumping, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3812, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3812, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
/* … */
}
}
__pyx_L5_break:;
+3813: break
goto __pyx_L5_break;
+3814: self.k_close_wateryear = np.random.randint(0, len(self.socal.hist_demand_dict['sorted_index'][dowy]))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_random); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_randint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_self->socal->hist_demand_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3814, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->socal->hist_demand_dict, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_int_0, __pyx_t_8}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_int_0, __pyx_t_8}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear, __pyx_t_1) < 0) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3815:
+3816: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3816, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3816, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3817: #sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1] - district_obj.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3818: sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3818, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3818, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Add(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_8, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_3);
__pyx_t_3 = 0;
+3819: district_obj.annualdemand[0] = max(sri_estimate - x.ytd_pumping[0][wateryear], 0.0)
__pyx_t_11 = 0.0;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_10 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_10, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_8 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3819, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0, __pyx_t_3) < 0)) __PYX_ERR(0, 3819, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3820: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3820, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3820, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3820, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3821: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3821, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3821, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3822: #sri_estimate = (total_delta_pumping*x.delivery_percent_coefficient[district_key][dowy][0] + private_obj.delivery_percent_coefficient[district_key][dowy][1] - private_obj.regression_errors[district_key][dowy][self.k_close_wateryear])*total_delta_pumping
+3823: sri_estimate = (total_delta_pumping*private_obj.delivery_percent_coefficient[district_key][dowy][0] + private_obj.delivery_percent_coefficient[district_key][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3823, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3823, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_t_10, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_8);
__pyx_t_8 = 0;
+3824: private_obj.annualdemand[district_key] = max(sri_estimate - private_obj.ytd_pumping[district_key][wateryear], 1.0)
__pyx_t_11 = 1.0;
if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3824, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->ytd_pumping, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_wateryear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_12 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_2) {
__pyx_t_12 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_10 = __pyx_t_12;
__pyx_t_12 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_10 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_10;
__Pyx_INCREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_v_private_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3824, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->annualdemand, __pyx_v_district_key, __pyx_t_8) < 0)) __PYX_ERR(0, 3824, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3825:
+3826: if da == 1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
3827:
+3828: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3828, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3829: for district_obj in urban_list:
__pyx_t_3 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3829, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3829, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_8)); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3830: district_obj.monthlydemand[wyt] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_10, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_int_12); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_district_obj->monthlydemand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3830, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->monthlydemand, __pyx_v_wyt, __pyx_t_8) < 0)) __PYX_ERR(0, 3830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3831: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3831, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3831, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3831, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3832: private_obj.monthlydemand = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_private_obj->monthlydemand); __Pyx_DECREF(__pyx_v_private_obj->monthlydemand); __pyx_v_private_obj->monthlydemand = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3833: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3833, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3833, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3833, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3834: private_obj.monthlydemand[district_key] = {}
__pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3834, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district_key, __pyx_t_8) < 0)) __PYX_ERR(0, 3834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3835: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_8 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3835, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_12)); __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3836: private_obj.monthlydemand[district_key][wyt] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_12 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3836, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_wyt, __pyx_t_12) < 0)) __PYX_ERR(0, 3836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3837:
3838:
+3839: start_of_month = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_start_of_month = __pyx_int_0;
3840: ###Divide aqueduct branch pumping into 'monthly demands'
+3841: for monthloop in range(0,12):
for (__pyx_t_13 = 0; __pyx_t_13 < 12; __pyx_t_13+=1) {
__pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3841, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_monthloop, __pyx_t_1);
__pyx_t_1 = 0;
+3842: monthcounter = monthloop + 9
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_monthloop, __pyx_int_9, 9, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_monthcounter, __pyx_t_1); __pyx_t_1 = 0;
+3843: if monthcounter > 11:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_monthcounter, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3843, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+3844: monthcounter -= 12
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_monthcounter, __pyx_int_12, 12, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_monthcounter, __pyx_t_1); __pyx_t_1 = 0;
+3845: if monthcounter < m-1:
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyObject_RichCompare(__pyx_v_monthcounter, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L27; }
+3846: cross_counter_y = 1
__Pyx_INCREF(__pyx_int_1); __Pyx_XDECREF_SET(__pyx_v_cross_counter_y, __pyx_int_1);
3847: else:
+3848: cross_counter_y = 0
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__Pyx_XDECREF_SET(__pyx_v_cross_counter_y, __pyx_int_0);
}
__pyx_L27:;
+3849: start_next_month = self.dowy_eom[year_index+cross_counter_y][monthcounter] + 1
if (unlikely(__pyx_v_self->dowy_eom == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3849, __pyx_L1_error)
}
__pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->dowy_eom, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_monthcounter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_start_next_month, __pyx_t_1);
__pyx_t_1 = 0;
+3850: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3850, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3851: for district_obj in urban_list:
__pyx_t_3 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3851, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3851, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_8)); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3852: #sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1] - district_obj.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3853: sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3853, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3853, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_7, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Add(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3853, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_8);
__pyx_t_8 = 0;
3854: #if monthcounter >= 9:
3855: #if wateryear > 0:
3856: #district_obj.monthlydemand[wyt][monthcounter] += np.mean(district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(district_obj.ytd_pumping[0][wateryear-1], 0.0)
3857: #else:
3858: #district_obj.monthlydemand[wyt][monthcounter] += np.mean(district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(district_obj.initial_pumping, 0.0)
3859: #else:
+3860: district_obj.monthlydemand[wyt][monthcounter] += np.mean(district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(sri_estimate - district_obj.ytd_pumping[0][wateryear], 0.0)
if (unlikely(__pyx_v_district_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3860, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_INCREF(__pyx_v_monthcounter);
__pyx_t_7 = __pyx_v_monthcounter;
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_mean); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3860, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetSlice(__pyx_t_17, 0, 0, &__pyx_v_start_of_month, &__pyx_v_start_next_month, NULL, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_15);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_15, function);
}
}
__pyx_t_10 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_16);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_district_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3860, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->ytd_pumping, __pyx_int_0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_14 = PyObject_RichCompare(__pyx_t_17, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (__pyx_t_2) {
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_16 = __pyx_t_14;
__pyx_t_14 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_16 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_t_10, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_16) < 0)) __PYX_ERR(0, 3860, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3861:
+3862: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3862, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3862, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3862, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3862, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3863: for district_keys in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3863, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3863, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3863, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_keys, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3864: # district_obj = self.district_keys[private_obj]
3865: #sri_estimate = (total_delta_pumping*private_obj.delivery_percent_coefficient[private_obj][dowy][0] + private_obj.delivery_percent_coefficient[private_obj][dowy][1] - private_obj.regression_errors[private_obj][dowy][self.k_close_wateryear])*total_delta_pumping
+3866: sri_estimate = (total_delta_pumping*private_obj.delivery_percent_coefficient[private_obj][dowy][0] + private_obj.delivery_percent_coefficient[private_obj][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3866, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_16, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3866, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_15, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Add(__pyx_t_16, __pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_15, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_7);
__pyx_t_7 = 0;
3867: #if monthcounter >= 9:
3868: #if wateryear > 0:
3869: #private_obj.monthlydemand[private_obj][wyt][monthcounter] += np.mean(self.district_keys[private_obj].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(private_obj.ytd_pumping[private_obj][wateryear-1], 0.0)
3870: #else:
3871: #private_obj.monthlydemand[private_obj][wyt][monthcounter] += np.mean(self.district_keys[private_obj].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])max(private_obj.initial_pumping[private_obj], 0.0)
3872: #else:
+3873: private_obj.monthlydemand[private_obj][wyt][monthcounter] += np.mean(self.district_keys[private_obj].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(sri_estimate - private_obj.ytd_pumping[private_obj][wateryear], 0.0)
if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3873, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_INCREF(__pyx_v_monthcounter);
__pyx_t_7 = __pyx_v_monthcounter;
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_mean); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3873, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_GetSlice(__pyx_t_18, 0, 0, &__pyx_v_start_of_month, &__pyx_v_start_next_month, NULL, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
__pyx_t_18 = PyMethod_GET_SELF(__pyx_t_14);
if (likely(__pyx_t_18)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
__Pyx_INCREF(__pyx_t_18);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_14, function);
}
}
__pyx_t_12 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_18, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_17);
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3873, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->ytd_pumping, ((PyObject *)__pyx_v_private_obj)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_10 = PyObject_RichCompare(__pyx_t_18, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_2) {
__pyx_t_10 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_17 = __pyx_t_10;
__pyx_t_10 = 0;
} else {
__Pyx_INCREF(__pyx_t_14);
__pyx_t_17 = __pyx_t_14;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_12, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_7, __pyx_t_17) < 0)) __PYX_ERR(0, 3873, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
3874:
+3875: start_of_month = start_next_month
__Pyx_INCREF(__pyx_v_start_next_month); __Pyx_DECREF_SET(__pyx_v_start_of_month, __pyx_v_start_next_month); }
3876:
+3877: for district_obj in urban_list:
__pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3877, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3877, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3878: district_obj.dailydemand[0] = 0.0
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3878, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3878, __pyx_L1_error)
3879:
3880: #sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1] - district_obj.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3881: sri_estimate = (total_delta_pumping*district_obj.delivery_percent_coefficient[0][dowy][0] + district_obj.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3881, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_district_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3881, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->delivery_percent_coefficient, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_15, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_15, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_3);
__pyx_t_3 = 0;
3882: #if monthcounter >= 9:
3883: #if wateryear > 0:
3884: #district_obj.dailydemand[0] += max(district_obj.ytd_pumping[0][wateryear-1], 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
3885: #district_obj.dailydemand_start[0] += max(district_obj.ytd_pumping[0][wateryear-1], 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
3886: #else:
3887: #district_obj.dailydemand[0] += max(district_obj.initial_pumping, 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
3888: #district_obj.dailydemand_start[0] += max(district_obj.initial_pumping, 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
3889: #else:
+3890: district_obj.dailydemand[0] += max(sri_estimate - district_obj.ytd_pumping[0][wateryear], 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3890, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->dailydemand);
__pyx_t_19 = __pyx_v_district_obj->dailydemand;
__Pyx_INCREF(__pyx_int_0);
__pyx_t_3 = __pyx_int_0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3890, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_district_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3890, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->ytd_pumping, __pyx_int_0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_14 = PyObject_RichCompare(__pyx_t_17, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (__pyx_t_2) {
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_7 = __pyx_t_14;
__pyx_t_14 = 0;
} else {
__Pyx_INCREF(__pyx_t_8);
__pyx_t_7 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3890, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_dowy); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_7, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3890, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_3, __pyx_t_14) < 0)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+3891: district_obj.dailydemand_start[0] += max(sri_estimate - district_obj.ytd_pumping[0][wateryear], 0.0)*district_obj.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
if (unlikely(__pyx_v_district_obj->dailydemand_start == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3891, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->dailydemand_start);
__pyx_t_19 = __pyx_v_district_obj->dailydemand_start;
__Pyx_INCREF(__pyx_int_0);
__pyx_t_3 = __pyx_int_0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3891, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_district_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3891, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->ytd_pumping, __pyx_int_0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_2) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_15 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_15 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_v_district_obj->hist_demand_dict == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3891, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->hist_demand_dict, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_15, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3891, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_3, __pyx_t_8) < 0)) __PYX_ERR(0, 3891, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
3892:
+3893: district_obj.ytd_pumping[0][wateryear] += district_obj.dailydemand[0]
if (unlikely(__pyx_v_district_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3893, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->ytd_pumping, __pyx_int_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_wateryear);
__pyx_t_8 = __pyx_v_wateryear;
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3893, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_8, __pyx_t_15) < 0)) __PYX_ERR(0, 3893, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3894:
+3895: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3895, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3895, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3895, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3896: for district_keys in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3896, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3896, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3896, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_keys, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3897: private_obj.dailydemand[district_keys] = 0.0
if (unlikely(__pyx_v_private_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3897, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_private_obj->dailydemand, __pyx_v_district_keys, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3897, __pyx_L1_error)
3898: # district_obj = self.district_keys[district_keys]
3899: #sri_estimate = (total_delta_pumping*private_obj.delivery_percent_coefficient[district_keys][dowy][0] + private_obj.delivery_percent_coefficient[district_keys][dowy][1] - private_obj.regression_errors[district_keys][dowy][self.k_close_wateryear])*total_delta_pumping
+3900: sri_estimate = (total_delta_pumping*private_obj.delivery_percent_coefficient[district_keys][dowy][0] + private_obj.delivery_percent_coefficient[district_keys][dowy][1])*total_delta_pumping
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3900, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__pyx_v_private_obj->delivery_percent_coefficient == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3900, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->delivery_percent_coefficient, __pyx_v_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_dowy); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_14, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Add(__pyx_t_15, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_Multiply(__pyx_t_14, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_8);
__pyx_t_8 = 0;
+3901: private_obj.dailydemand[district_keys] += max(sri_estimate- private_obj.ytd_pumping[district_keys][wateryear], 0.0)*self.district_keys[district_keys].hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
if (unlikely(__pyx_v_private_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3901, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_private_obj->dailydemand);
__pyx_t_19 = __pyx_v_private_obj->dailydemand;
__Pyx_INCREF(__pyx_v_district_keys);
__pyx_t_8 = __pyx_v_district_keys;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3901, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3901, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->ytd_pumping, __pyx_v_district_keys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = PyObject_RichCompare(__pyx_t_17, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_2) {
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = __pyx_t_16;
__pyx_t_16 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_7 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3901, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_keys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_dowy); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_7, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3901, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_8, __pyx_t_16) < 0)) __PYX_ERR(0, 3901, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+3902: private_obj.dailydemand_start[district_keys] += max(sri_estimate -private_obj.ytd_pumping[district_keys][wateryear], 0.0)*self.district_keys[district_keys].hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
if (unlikely(__pyx_v_private_obj->dailydemand_start == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3902, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_private_obj->dailydemand_start);
__pyx_t_19 = __pyx_v_private_obj->dailydemand_start;
__Pyx_INCREF(__pyx_v_district_keys);
__pyx_t_8 = __pyx_v_district_keys;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3902, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3902, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->ytd_pumping, __pyx_v_district_keys); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_7, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_2) {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = __pyx_t_15;
__pyx_t_15 = 0;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_14 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3902, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_keys); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_15, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3902, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_8, __pyx_t_15) < 0)) __PYX_ERR(0, 3902, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+3903: private_obj.ytd_pumping[district_keys][wateryear] += private_obj.dailydemand[district_keys]
if (unlikely(__pyx_v_private_obj->ytd_pumping == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3903, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->ytd_pumping, __pyx_v_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_INCREF(__pyx_v_wateryear);
__pyx_t_15 = __pyx_v_wateryear;
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_private_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3903, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->dailydemand, __pyx_v_district_keys); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_16); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_15, __pyx_t_14) < 0)) __PYX_ERR(0, 3903, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
3904:
3905:
+3906: def agg_contract_demands(self, year_index, m, wyt_real):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_63agg_contract_demands(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_63agg_contract_demands(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_year_index = 0;
PyObject *__pyx_v_m = 0;
CYTHON_UNUSED PyObject *__pyx_v_wyt_real = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("agg_contract_demands (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_year_index,&__pyx_n_s_m,&__pyx_n_s_wyt_real,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 3, 3, 1); __PYX_ERR(0, 3906, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt_real)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 3, 3, 2); __PYX_ERR(0, 3906, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "agg_contract_demands") < 0)) __PYX_ERR(0, 3906, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_year_index = values[0];
__pyx_v_m = values[1];
__pyx_v_wyt_real = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3906, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.agg_contract_demands", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_62agg_contract_demands(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt_real);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_62agg_contract_demands(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_year_index, PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt_real) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *__pyx_cur_scope;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_v_total_alloc = NULL;
CYTHON_UNUSED Py_ssize_t __pyx_v_i;
PyObject *__pyx_v_total_frac = NULL;
long __pyx_v_monthcounter;
PyObject *__pyx_v_daysmonth = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_district = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("agg_contract_demands", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3906, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__Pyx_TraceCall("agg_contract_demands", __pyx_f[0], 3906, 0, __PYX_ERR(0, 3906, __pyx_L1_error));
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_AddTraceback("calfews_src.model_cy.Model.agg_contract_demands", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XDECREF(__pyx_v_total_alloc);
__Pyx_XDECREF(__pyx_v_total_frac);
__Pyx_XDECREF(__pyx_v_daysmonth);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_district);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands {
PyObject_HEAD
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj;
struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self;
};
3907: #this function sums district demands by reservoir (i.e. - for each reservoir, the sum of the demand of all districts
3908: #with a contract that is held at that reservoir
3909: cdef Reservoir reservoir_obj
3910: cdef District district_obj
3911: cdef Private private_obj
3912:
+3913: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3913, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3914: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_cur_scope->__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3914, __pyx_L1_error)
}
__pyx_t_3 = __pyx_cur_scope->__pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3914, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3914, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 3914, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_reservoir_obj));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_5));
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3915: reservoir_obj.monthly_demand[wyt] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3915, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt, __pyx_t_5) < 0)) __PYX_ERR(0, 3915, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3916: reservoir_obj.monthly_demand_full[wyt] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_int_12); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3916, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt, __pyx_t_5) < 0)) __PYX_ERR(0, 3916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3917: reservoir_obj.monthly_demand_must_fill[wyt] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_must_fill == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3917, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_must_fill, __pyx_v_wyt, __pyx_t_5) < 0)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3918: for district_obj in self.district_list:
if (unlikely(__pyx_cur_scope->__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3918, __pyx_L1_error)
}
__pyx_t_5 = __pyx_cur_scope->__pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 3918, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 3918, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3919: total_alloc = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3920: for i in range(len(self.reservoir_contract[reservoir_obj.key])):
if (unlikely(__pyx_cur_scope->__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3920, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_self->reservoir_contract, __pyx_cur_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3920, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_i = __pyx_t_11;
+3921: if reservoir_obj.key == "MIL":
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_reservoir_obj->key, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3921, __pyx_L1_error) __pyx_t_13 = (__pyx_t_12 != 0); if (__pyx_t_13) { /* … */ goto __pyx_L11; }
+3922: if district_obj.annualdemand[0] > 0.0:
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3922, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3922, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3922, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3922, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L12;
}
+3923: total_frac = min(max(district_obj.project_contract['friant1']*self.friant1.total,0.0)/district_obj.annualdemand[0], 1.0)
__pyx_t_14 = 1.0;
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3923, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->project_contract, __pyx_n_u_friant1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_self->friant1->total); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_13) {
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_7 = __pyx_t_17;
__pyx_t_17 = 0;
} else {
__Pyx_INCREF(__pyx_t_16);
__pyx_t_7 = __pyx_t_16;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3923, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_13) {
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_16 = __pyx_t_6;
__pyx_t_6 = 0;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_16 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __pyx_t_16;
__Pyx_INCREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_17);
__pyx_t_17 = 0;
3924: else:
+3925: total_frac = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
}
__pyx_L12:;
+3926: elif reservoir_obj.key == 'PFT':
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_reservoir_obj->key, __pyx_n_u_PFT, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3926, __pyx_L1_error) __pyx_t_12 = (__pyx_t_13 != 0); if (__pyx_t_12) { /* … */ goto __pyx_L11; }
+3927: if district_obj.annualdemand[0] > 0.0:
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3927, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = PyObject_RichCompare(__pyx_t_17, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3927, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3927, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L13;
}
+3928: total_frac = min(max(district_obj.projected_supply['kings']/district_obj.annualdemand[0],0.0), 1.0)
__pyx_t_14 = 1.0;
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3928, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kings); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3928, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_16, __pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_16, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_12) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_17 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_17 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_6 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_12) {
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __pyx_t_16;
__pyx_t_16 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_17 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_17;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_6);
__pyx_t_6 = 0;
3929: else:
+3930: total_frac = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
}
__pyx_L13:;
+3931: elif reservoir_obj.key == 'KWH':
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_reservoir_obj->key, __pyx_n_u_KWH, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3931, __pyx_L1_error) __pyx_t_13 = (__pyx_t_12 != 0); if (__pyx_t_13) { /* … */ goto __pyx_L11; }
+3932: if district_obj.annualdemand[0] > 0.0:
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3932, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_6, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L14;
}
+3933: total_frac = min(max(district_obj.projected_supply['kaweah']/district_obj.annualdemand[0],0.0), 1.0)
__pyx_t_14 = 1.0;
__pyx_t_15 = 0.0;
if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3933, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_n_u_kaweah); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (unlikely(__pyx_v_district_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3933, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_17, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_13) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_16);
__pyx_t_6 = __pyx_t_16;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_16 = __pyx_t_6;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_7, __pyx_t_16, Py_LT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_13) {
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_6 = __pyx_t_17;
__pyx_t_17 = 0;
} else {
__Pyx_INCREF(__pyx_t_16);
__pyx_t_6 = __pyx_t_16;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __pyx_t_6;
__Pyx_INCREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_16);
__pyx_t_16 = 0;
3934: else:
+3935: total_frac = 0.0
/*else*/ {
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
}
__pyx_L14:;
3936: else:
+3937: total_frac = 1.0
/*else*/ {
__Pyx_INCREF(__pyx_float_1_0);
__Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_1_0);
}
__pyx_L11:;
}
+3938: if district_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(__pyx_v_district_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3938, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->reservoir_contract, __pyx_cur_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_16, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_13) {
/* … */
}
+3939: for monthcounter in range(0,12):
for (__pyx_t_18 = 0; __pyx_t_18 < 12; __pyx_t_18+=1) {
__pyx_v_monthcounter = __pyx_t_18;
+3940: if monthcounter >= m-1:
__pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_GE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L18; }
+3941: daysmonth = self.days_in_month[year_index][monthcounter]
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3941, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_17, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
3942: else:
+3943: daysmonth = self.days_in_month[year_index+1][monthcounter]
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3943, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_17, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
}
__pyx_L18:;
+3944: if district_obj.must_fill == 1:
__pyx_t_13 = ((__pyx_v_district_obj->must_fill == 1) != 0);
if (__pyx_t_13) {
/* … */
goto __pyx_L19;
}
+3945: reservoir_obj.monthly_demand_must_fill[wyt][monthcounter] += district_obj.monthlydemand[wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_must_fill == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3945, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_17 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (unlikely(__pyx_v_district_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3945, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_19, __pyx_t_7, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3945, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
3946: else:
+3947: reservoir_obj.monthly_demand[wyt][monthcounter] += district_obj.monthlydemand[wyt][monthcounter]*daysmonth*total_frac
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3947, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_district_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3947, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_17, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_v_total_frac)) { __Pyx_RaiseUnboundLocalError("total_frac"); __PYX_ERR(0, 3947, __pyx_L1_error) }
__pyx_t_17 = PyNumber_Multiply(__pyx_t_6, __pyx_v_total_frac); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_19, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3947, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+3948: reservoir_obj.monthly_demand_full[wyt][monthcounter] += district_obj.monthlydemand[wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3948, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_district_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3948, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_17, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_19, __pyx_t_7, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3948, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__pyx_L19:;
}
3949:
+3950: for private_obj in self.private_list:
if (unlikely(__pyx_cur_scope->__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3950, __pyx_L1_error)
}
__pyx_t_5 = __pyx_cur_scope->__pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_16); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 3950, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3950, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3950, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3951: total_alloc = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3952: total_frac = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_16); __pyx_t_16 = 0;
+3953: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3953, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3953, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_16, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3953, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+3954: for contract_key in (_.name for _ in self.reservoir_contract[reservoir_obj.key]):
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_20agg_contract_demands_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3954, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_agg_contract_demands_locals_gene, __pyx_n_s_calfews_src_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.agg_contract_demands.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__Pyx_TraceDeclarations
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3954, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 3954, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3954, __pyx_L1_error)
}
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_reservoir_obj)) { __Pyx_RaiseClosureNameError("reservoir_obj"); __PYX_ERR(0, 3954, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->reservoir_contract, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3954, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3954, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3954, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3954, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v__, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
__Pyx_XGIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3954, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_7 = __pyx_pf_11calfews_src_8model_cy_5Model_20agg_contract_demands_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
__pyx_t_17 = __pyx_t_7; __Pyx_INCREF(__pyx_t_17); __pyx_t_10 = 0;
__pyx_t_20 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_20 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3954, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
for (;;) {
if (likely(!__pyx_t_20)) {
if (likely(PyList_CheckExact(__pyx_t_17))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3954, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_17, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3954, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_17, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
} else {
__pyx_t_7 = __pyx_t_20(__pyx_t_17);
if (unlikely(!__pyx_t_7)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3954, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_7);
}
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_1_genexpr {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *__pyx_outer_scope;
PyObject *__pyx_v__;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+3955: total_alloc += private_obj.projected_supply[district_key][contract_key]
if (unlikely(__pyx_v_private_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3955, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->projected_supply, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_contract_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_alloc, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF_SET(__pyx_v_total_alloc, __pyx_t_7);
__pyx_t_7 = 0;
+3956: if private_obj.annualdemand[district_key] > 0.0:
if (unlikely(__pyx_v_private_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3956, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annualdemand, __pyx_v_district_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3956, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_17, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3956, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3956, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L26;
}
+3957: total_frac[district_key] = min(total_alloc/private_obj.annualdemand[district_key], 1.0)
__pyx_t_14 = 1.0;
if (unlikely(__pyx_v_private_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3957, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annualdemand, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_v_total_alloc, __pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_6, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_13) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_7 = __pyx_t_17;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __pyx_t_7;
__Pyx_INCREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_district_key, __pyx_t_17) < 0)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
3958: else:
+3959: total_frac[district_key] = 0.0
/*else*/ {
if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_district_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3959, __pyx_L1_error)
}
__pyx_L26:;
+3960: if private_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3960, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->reservoir_contract, __pyx_cur_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyInt_EqObjC(__pyx_t_16, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3960, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_13) {
/* … */
}
+3961: for monthcounter in range(0,12):
for (__pyx_t_18 = 0; __pyx_t_18 < 12; __pyx_t_18+=1) {
__pyx_v_monthcounter = __pyx_t_18;
+3962: if monthcounter >= m-1:
__pyx_t_17 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_7 = PyObject_RichCompare(__pyx_t_17, __pyx_t_16, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L30; }
+3963: daysmonth = self.days_in_month[year_index][monthcounter]
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3963, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3963, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
3964: else:
+3965: daysmonth = self.days_in_month[year_index+1][monthcounter]
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3965, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3965, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3965, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3965, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
}
__pyx_L30:;
+3966: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3966, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3966, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_16, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
+3967: reservoir_obj.monthly_demand[wyt][monthcounter] += private_obj.monthlydemand[district_key][wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3967, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_17 = __Pyx_GetItemInt(__pyx_t_7, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3967, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_v_wyt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_21, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_t_19, __pyx_t_21, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3967, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3968: reservoir_obj.monthly_demand_full[wyt][monthcounter] += private_obj.monthlydemand[district_key][wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3968, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_7, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3968, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_v_wyt); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_17, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_6, __pyx_v_daysmonth); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_t_19, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3968, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
3969:
+3970: for private_obj in self.city_list:
if (unlikely(__pyx_cur_scope->__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3970, __pyx_L1_error)
}
__pyx_t_5 = __pyx_cur_scope->__pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_16 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_16); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 3970, __pyx_L1_error)
#else
__pyx_t_16 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
#endif
if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 3970, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_16));
__pyx_t_16 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3971: total_alloc = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3972: total_frac = {}
__pyx_t_16 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_16); __pyx_t_16 = 0;
+3973: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3973, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3973, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_16, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+3974: for contract_key in (_.name for _ in self.reservoir_contract[reservoir_obj.key]):
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_20agg_contract_demands_3genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3974, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_5generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_agg_contract_demands_locals_gene, __pyx_n_s_calfews_src_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.agg_contract_demands.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_20agg_contract_demands_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__Pyx_TraceDeclarations
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3974, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 3974, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3974, __pyx_L1_error)
}
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_reservoir_obj)) { __Pyx_RaiseClosureNameError("reservoir_obj"); __PYX_ERR(0, 3974, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->reservoir_contract, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3974, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3974, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3974, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3974, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v__, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
__Pyx_XGIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3974, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_7 = __pyx_pf_11calfews_src_8model_cy_5Model_20agg_contract_demands_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
__pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0;
__pyx_t_20 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3974, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
for (;;) {
if (likely(!__pyx_t_20)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3974, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3974, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
} else {
__pyx_t_7 = __pyx_t_20(__pyx_t_6);
if (unlikely(!__pyx_t_7)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3974, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_7);
}
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_2_genexpr {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct__agg_contract_demands *__pyx_outer_scope;
PyObject *__pyx_v__;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+3975: total_alloc += private_obj.projected_supply[district_key][contract_key]
if (unlikely(__pyx_v_private_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3975, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->projected_supply, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_contract_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_alloc, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF_SET(__pyx_v_total_alloc, __pyx_t_7);
__pyx_t_7 = 0;
+3976: if private_obj.annualdemand[district_key] > 0.0:
if (unlikely(__pyx_v_private_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3976, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annualdemand, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3976, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3976, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L39;
}
+3977: total_frac[district_key] = min(total_alloc/private_obj.annualdemand[district_key], 1.0)
__pyx_t_14 = 1.0;
if (unlikely(__pyx_v_private_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3977, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->annualdemand, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_v_total_alloc, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_17, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_13) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_7 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_7;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_district_key, __pyx_t_6) < 0)) __PYX_ERR(0, 3977, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3978: else:
+3979: total_frac[district_key] = 0.0
/*else*/ {
if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_district_key, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3979, __pyx_L1_error)
}
__pyx_L39:;
+3980: if private_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(__pyx_v_private_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3980, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->reservoir_contract, __pyx_cur_scope->__pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_16, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3980, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_13) {
/* … */
}
+3981: for monthcounter in range(0,12):
for (__pyx_t_18 = 0; __pyx_t_18 < 12; __pyx_t_18+=1) {
__pyx_v_monthcounter = __pyx_t_18;
+3982: if monthcounter >=m-1:
__pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L43; }
+3983: daysmonth = self.days_in_month[year_index][monthcounter]
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3983, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
3984: else:
+3985: daysmonth = self.days_in_month[year_index+1][monthcounter]
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3985, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
}
__pyx_L43:;
+3986: for district in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3986, __pyx_L1_error)
}
__pyx_t_16 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_16); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3986, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_16, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
+3987: reservoir_obj.monthly_demand[wyt][monthcounter] += private_obj.monthlydemand[district][wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3987, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_7, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3987, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_v_wyt); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_17, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_21, __pyx_v_daysmonth); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_17); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_t_19, __pyx_t_21, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3987, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3988: reservoir_obj.monthly_demand_full[wyt][monthcounter] += private_obj.monthlydemand[district][wyt][monthcounter]*daysmonth
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3988, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __pyx_v_monthcounter;
__pyx_t_21 = __Pyx_GetItemInt(__pyx_t_7, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (unlikely(__pyx_v_private_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3988, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->monthlydemand, __pyx_v_district); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_17, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_t_19, __pyx_t_17, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
3989:
+3990: for monthcounter in range(0,12):
for (__pyx_t_18 = 0; __pyx_t_18 < 12; __pyx_t_18+=1) {
__pyx_v_monthcounter = __pyx_t_18;
+3991: if monthcounter >= m-1:
__pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_16 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_16, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3991, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3991, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L48; }
+3992: daysmonth = self.days_in_month[year_index][monthcounter]
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3992, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3992, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3992, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
3993: else:
+3994: daysmonth = self.days_in_month[year_index + 1][monthcounter]
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3994, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_self->days_in_month, __pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_16);
__pyx_t_16 = 0;
}
__pyx_L48:;
+3995: if reservoir_obj.monthly_demand[wyt][monthcounter] > reservoir_obj.total_capacity*cfs_tafd*daysmonth:
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3995, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_16, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_reservoir_obj->total_capacity); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_17 = PyNumber_Multiply(__pyx_t_16, __pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Multiply(__pyx_t_17, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_13) {
/* … */
}
+3996: reservoir_obj.monthly_demand[wyt][monthcounter] = reservoir_obj.total_capacity*cfs_tafd*daysmonth
__pyx_t_17 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_reservoir_obj->total_capacity); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyNumber_Multiply(__pyx_t_17, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3996, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_v_monthcounter, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3996, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3997: if reservoir_obj.monthly_demand_full[wyt][monthcounter] > reservoir_obj.total_capacity*cfs_tafd*daysmonth:
if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3997, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_reservoir_obj->total_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_5, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_Multiply(__pyx_t_16, __pyx_v_daysmonth); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyObject_RichCompare(__pyx_t_7, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3997, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_13) {
/* … */
}
}
+3998: reservoir_obj.monthly_demand_full[wyt][monthcounter] = reservoir_obj.total_capacity*cfs_tafd*daysmonth
__pyx_t_16 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_reservoir_obj->total_capacity); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_7 = PyNumber_Multiply(__pyx_t_16, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3998, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_reservoir_obj->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_v_monthcounter, __pyx_t_17, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3998, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
3999:
4000:
+4001: def appropriate_carryover(self, forgone, key, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_65appropriate_carryover(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_65appropriate_carryover(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_forgone = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_wateryear = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("appropriate_carryover (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_forgone,&__pyx_n_s_key,&__pyx_n_s_wateryear,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_forgone)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 3, 3, 1); __PYX_ERR(0, 4001, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 3, 3, 2); __PYX_ERR(0, 4001, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appropriate_carryover") < 0)) __PYX_ERR(0, 4001, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_forgone = values[0];
__pyx_v_key = values[1];
__pyx_v_wateryear = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4001, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.appropriate_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_64appropriate_carryover(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_forgone, __pyx_v_key, __pyx_v_wateryear);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_64appropriate_carryover(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_forgone, PyObject *__pyx_v_key, PyObject *__pyx_v_wateryear) {
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_remaining_carryover = NULL;
PyObject *__pyx_v_remaining_balance = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_total_remaining = NULL;
PyObject *__pyx_v_carryover_fraction = NULL;
PyObject *__pyx_v_current_contract = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("appropriate_carryover", 0);
__Pyx_TraceCall("appropriate_carryover", __pyx_f[0], 4001, 0, __PYX_ERR(0, 4001, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("calfews_src.model_cy.Model.appropriate_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_remaining_carryover);
__Pyx_XDECREF(__pyx_v_remaining_balance);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_total_remaining);
__Pyx_XDECREF(__pyx_v_carryover_fraction);
__Pyx_XDECREF(__pyx_v_current_contract);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4002: #if pumping is turned 'off' because of san luis storage conditions,
4003: #any carryover water (up to the total potential pumping) is taken from the individual
4004: #district that owned it and redistributed to all districts as this year's allocation
4005: cdef Contract contract_obj
4006: cdef District district_obj
4007: cdef Private private_obj
4008:
+4009: remaining_carryover = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_remaining_carryover = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4010: remaining_balance = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_remaining_balance = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4011: for contract_obj in self.reservoir_contract[key]:
if (unlikely(__pyx_v_self->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4011, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_contract, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4011, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4011, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4011, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4011, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 4011, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4012: remaining_carryover[contract_obj.name] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4012, __pyx_L1_error)
+4013: remaining_balance[contract_obj.name] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_remaining_balance, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4013, __pyx_L1_error)
+4014: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4014, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4014, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4014, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4015: #find total amount of carryover that has not yet been delivered, by contract
+4016: for contract_key in remaining_carryover:
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4016, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, NULL, NULL, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4016, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8);
__pyx_t_8 = 0;
+4017: remaining_carryover[contract_key] += max(district_obj.carryover[contract_key] - district_obj.deliveries[contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_8 = __pyx_v_contract_key; __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = 0.0; if (unlikely(__pyx_v_district_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4017, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4017, __pyx_L1_error) } __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Subtract(__pyx_t_12, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_12 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyObject_RichCompare(__pyx_t_12, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_16) { __pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __pyx_t_15; __pyx_t_15 = 0; } else { __Pyx_INCREF(__pyx_t_13); __pyx_t_14 = __pyx_t_13; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_8, __pyx_t_13) < 0)) __PYX_ERR(0, 4017, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4018: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4018, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4018, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4018, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4018, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4019: for contract_key in remaining_carryover:
__pyx_t_6 = 0;
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_5, &__pyx_t_6, &__pyx_t_8, NULL, NULL, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8);
__pyx_t_8 = 0;
+4020: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4020, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_13); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4020, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4021: remaining_carryover[contract_key] += max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_13 = __pyx_v_contract_key; __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = 0.0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4021, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_contract_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4021, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_contract_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_18 = PyObject_RichCompare(__pyx_t_15, __pyx_t_12, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_16) { __pyx_t_18 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_10 = __pyx_t_18; __pyx_t_18 = 0; } else { __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = __pyx_t_12; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_13, __pyx_t_12) < 0)) __PYX_ERR(0, 4021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4022: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4022, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4022, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4022, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4022, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4023: for contract_key in remaining_carryover:
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4023, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, NULL, NULL, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4023, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8);
__pyx_t_8 = 0;
+4024: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4024, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_13); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4024, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4025: remaining_carryover[contract_key] += max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_13 = __pyx_v_contract_key; __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = 0.0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4025, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4025, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_contract_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_wateryear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_Subtract(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = PyObject_RichCompare(__pyx_t_14, __pyx_t_18, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_16) { __pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_10 = __pyx_t_15; __pyx_t_15 = 0; } else { __Pyx_INCREF(__pyx_t_18); __pyx_t_10 = __pyx_t_18; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_13, __pyx_t_18) < 0)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4026:
+4027: total_remaining = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_total_remaining = __pyx_float_0_0;
+4028: for contract_key in remaining_carryover:
__pyx_t_3 = 0; __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_6, &__pyx_t_3, &__pyx_t_1, NULL, NULL, __pyx_t_7); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_1); __pyx_t_1 = 0;
4029: #total the carryover for each contract at that reservoir
+4030: total_remaining += remaining_carryover[contract_key]
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_total_remaining, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_total_remaining, __pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4031: if total_remaining > 0.0:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_total_remaining, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4031, __pyx_L1_error) __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4031, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_16) { /* … */ }
4032: #what % of carryover needs to be taken
+4033: carryover_fraction = min(forgone/total_remaining, 1.0)
__pyx_t_11 = 1.0;
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_forgone, __pyx_v_total_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4033, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4033, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_16) {
__pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_8 = __pyx_t_13;
__pyx_t_13 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_8 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_v_carryover_fraction = __pyx_t_2;
__pyx_t_2 = 0;
+4034: for contract_key in remaining_carryover:
__pyx_t_6 = 0;
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_3, &__pyx_t_6, &__pyx_t_8, NULL, NULL, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_8);
__pyx_t_8 = 0;
+4035: current_contract = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4035, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_current_contract, __pyx_t_8);
__pyx_t_8 = 0;
4036: #carryover contracts canceled
+4037: current_contract.tot_carryover -= remaining_carryover[contract_key]*carryover_fraction
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = PyNumber_Multiply(__pyx_t_13, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_InPlaceSubtract(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover, __pyx_t_13) < 0) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4038: #'new allocation' credited to the contract
+4039: self.pumping_turnback[key] -= remaining_carryover[contract_key]*carryover_fraction
if (unlikely(__pyx_v_self->pumping_turnback == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4039, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->pumping_turnback);
__pyx_t_19 = __pyx_v_self->pumping_turnback;
__Pyx_INCREF(__pyx_v_key);
__pyx_t_13 = __pyx_v_key;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4039, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_18 = PyNumber_Multiply(__pyx_t_8, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4039, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_13, __pyx_t_8) < 0)) __PYX_ERR(0, 4039, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4040: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4040, __pyx_L1_error)
}
__pyx_t_13 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4040, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4040, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4040, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4041: district_obj.carryover[contract_key] -= max(district_obj.carryover[contract_key] - district_obj.deliveries[contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4041, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->carryover);
__pyx_t_19 = __pyx_v_district_obj->carryover;
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_8 = __pyx_v_contract_key;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4041, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4041, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4041, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Subtract(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_1, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_16) {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_12 = __pyx_t_15;
__pyx_t_15 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_12 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Multiply(__pyx_t_12, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_InPlaceSubtract(__pyx_t_18, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_t_19 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4041, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_19, __pyx_t_8, __pyx_t_12) < 0)) __PYX_ERR(0, 4041, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4042: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4042, __pyx_L1_error)
}
__pyx_t_13 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4042, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4042, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4043: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4043, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4043, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_12);
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4044: private_obj.carryover[district_key][contract_key] -= max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4044, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_10 = __pyx_v_contract_key;
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4044, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_contract_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4044, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Subtract(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_1, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_16) {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_15 = __pyx_t_20;
__pyx_t_20 = 0;
} else {
__Pyx_INCREF(__pyx_t_14);
__pyx_t_15 = __pyx_t_14;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_15, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceSubtract(__pyx_t_18, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_10, __pyx_t_15) < 0)) __PYX_ERR(0, 4044, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4045: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4045, __pyx_L1_error)
}
__pyx_t_13 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4045, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4045, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4045, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4046: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4046, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_12);
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4047: private_obj.carryover[district_key][contract_key] -= max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4047, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_10 = __pyx_v_contract_key;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_11 = 0.0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4047, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_contract_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4047, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_contract_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyNumber_Subtract(__pyx_t_18, __pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_18, __pyx_t_20, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_16) {
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_14 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_14 = __pyx_t_20;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyNumber_Multiply(__pyx_t_14, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_15, __pyx_t_20); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_10, __pyx_t_14) < 0)) __PYX_ERR(0, 4047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
4048:
4049:
+4050: def update_carryover(self, spill, key, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_67update_carryover(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_67update_carryover(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_spill = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_wateryear = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_carryover (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_spill,&__pyx_n_s_key,&__pyx_n_s_wateryear,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spill)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_carryover", 1, 3, 3, 1); __PYX_ERR(0, 4050, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_carryover", 1, 3, 3, 2); __PYX_ERR(0, 4050, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_carryover") < 0)) __PYX_ERR(0, 4050, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_spill = values[0];
__pyx_v_key = values[1];
__pyx_v_wateryear = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_carryover", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4050, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_66update_carryover(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_spill, __pyx_v_key, __pyx_v_wateryear);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_66update_carryover(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_spill, PyObject *__pyx_v_key, PyObject *__pyx_v_wateryear) {
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_remaining_carryover = NULL;
PyObject *__pyx_v_carryover_fraction = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_district_key = NULL;
PyObject *__pyx_v_total_remaining = NULL;
PyObject *__pyx_v_current_contract = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_carryover", 0);
__Pyx_TraceCall("update_carryover", __pyx_f[0], 4050, 0, __PYX_ERR(0, 4050, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_remaining_carryover);
__Pyx_XDECREF(__pyx_v_carryover_fraction);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_total_remaining);
__Pyx_XDECREF(__pyx_v_current_contract);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4051: #This function is meant to take a flood release and subtract it either from
4052: #existing carryover or projected contract deliveries
4053: cdef Canal canal_obj
4054: cdef Contract contract_obj
4055: cdef District district_obj
4056: cdef Private private_obj
4057:
+4058: remaining_carryover = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_remaining_carryover = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4059: carryover_fraction = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_carryover_fraction = __pyx_float_0_0;
4060: #loop through the canals associated with the reservoir, 'key'
+4061: for canal_obj in self.reservoir_canal[key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4061, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4061, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4061, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4061, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4061, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4061, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4062: #what contracts are deliveried on that canal
+4063: for contract_obj in self.canal_contract[canal_obj.name]:
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4063, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4063, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4063, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4063, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_7(__pyx_t_5);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4063, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 4063, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4064: #initialize remaining carryover variable
4065: #this also makes a list of all contracts w/carryover (for looping later)
+4066: remaining_carryover[contract_obj.name] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4066, __pyx_L1_error)
4067:
4068: #find total carryover (district carryover balances that have not yet been delivered)
+4069: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4069, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4069, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4069, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4070: for contract_key in remaining_carryover:
__pyx_t_6 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_8, &__pyx_t_6, &__pyx_t_1, NULL, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_1);
__pyx_t_1 = 0;
+4071: remaining_carryover[contract_key] += max(district_obj.carryover[contract_key] - district_obj.deliveries[contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_1 = __pyx_v_contract_key; __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = 0.0; if (unlikely(__pyx_v_district_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4071, __pyx_L1_error) } __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4071, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Subtract(__pyx_t_13, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_13 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_16 = PyObject_RichCompare(__pyx_t_13, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_17) { __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = __pyx_t_16; __pyx_t_16 = 0; } else { __Pyx_INCREF(__pyx_t_14); __pyx_t_15 = __pyx_t_14; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_1, __pyx_t_14) < 0)) __PYX_ERR(0, 4071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4072: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4072, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4072, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4072, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4073: for contract_key in remaining_carryover:
__pyx_t_8 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4073, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_6, &__pyx_t_8, &__pyx_t_1, NULL, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4073, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_1);
__pyx_t_1 = 0;
+4074: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4074, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_18); __Pyx_INCREF(__pyx_t_14); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4074, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_1, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4075: remaining_carryover[contract_key] += max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_14 = __pyx_v_contract_key; __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = 0.0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4075, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_contract_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4075, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_contract_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Subtract(__pyx_t_16, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_19 = PyObject_RichCompare(__pyx_t_16, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (__pyx_t_17) { __pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_11 = __pyx_t_19; __pyx_t_19 = 0; } else { __Pyx_INCREF(__pyx_t_13); __pyx_t_11 = __pyx_t_13; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_14, __pyx_t_13) < 0)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4076: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4076, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4076, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4076, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4076, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4077: for contract_key in remaining_carryover:
__pyx_t_6 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_8, &__pyx_t_6, &__pyx_t_1, NULL, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_1);
__pyx_t_1 = 0;
+4078: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4078, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_18); __Pyx_INCREF(__pyx_t_14); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4078, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_1, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4078, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_14);
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4079: remaining_carryover[contract_key] += max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)
__Pyx_INCREF(__pyx_v_contract_key); __pyx_t_14 = __pyx_v_contract_key; __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = 0.0; if (unlikely(__pyx_v_private_obj->carryover == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4079, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_contract_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4079, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_contract_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_wateryear); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_Subtract(__pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_15 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyObject_RichCompare(__pyx_t_15, __pyx_t_19, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_17) { __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_11 = __pyx_t_16; __pyx_t_16 = 0; } else { __Pyx_INCREF(__pyx_t_19); __pyx_t_11 = __pyx_t_19; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_14, __pyx_t_19) < 0)) __PYX_ERR(0, 4079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
4080:
4081: #sum carryover in all contracts on that reservoir
+4082: total_remaining = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_total_remaining = __pyx_float_0_0;
+4083: for contract_key in remaining_carryover:#loop over all contracts w/carryover balances
__pyx_t_3 = 0; __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_8, &__pyx_t_3, &__pyx_t_5, NULL, NULL, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_5); __pyx_t_5 = 0;
+4084: total_remaining += remaining_carryover[contract_key]
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_total_remaining, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_total_remaining, __pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4085:
4086: #if there is carryover - what % needs to be taken to make up for spillage
+4087: if total_remaining > 0.0:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_total_remaining, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4087, __pyx_L1_error) __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_17) { /* … */ goto __pyx_L25; }
+4088: carryover_fraction = min(spill/total_remaining, 1.0)
__pyx_t_12 = 1.0;
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_spill, __pyx_v_total_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_14 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4088, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4088, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (__pyx_t_17) {
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_1 = __pyx_t_14;
__pyx_t_14 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_carryover_fraction, __pyx_t_2);
__pyx_t_2 = 0;
4089:
4090: #if there is more spill than remaining carryover, need to add to the contract adjustment (this amount is subtracted from total contract allocation)
+4091: self.allocation_losses[key] += max(spill - total_remaining*carryover_fraction, 0.0)
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4091, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->allocation_losses);
__pyx_t_20 = __pyx_v_self->allocation_losses;
__Pyx_INCREF(__pyx_v_key);
__pyx_t_2 = __pyx_v_key;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4091, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_20, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_12 = 0.0;
__pyx_t_14 = PyNumber_Multiply(__pyx_v_total_remaining, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_5 = PyNumber_Subtract(__pyx_v_spill, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_11 = PyObject_RichCompare(__pyx_t_19, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__pyx_t_17) {
__pyx_t_11 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_14 = __pyx_t_11;
__pyx_t_11 = 0;
} else {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_14 = __pyx_t_5;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4091, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_20, __pyx_t_2, __pyx_t_5) < 0)) __PYX_ERR(0, 4091, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+4092: self.allocation_losses[key] += max(spill - total_remaining*carryover_fraction, 0.0)
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4092, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->allocation_losses);
__pyx_t_20 = __pyx_v_self->allocation_losses;
__Pyx_INCREF(__pyx_v_key);
__pyx_t_2 = __pyx_v_key;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4092, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_t_20, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_12 = 0.0;
__pyx_t_14 = PyNumber_Multiply(__pyx_v_total_remaining, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_1 = PyNumber_Subtract(__pyx_v_spill, __pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_11 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_11, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_17) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_14 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_14 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4092, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_20, __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
4093:
+4094: for contract_key in remaining_carryover:#loop over all contracts w/carryover balances
__pyx_t_8 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_3, &__pyx_t_8, &__pyx_t_1, NULL, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_1);
__pyx_t_1 = 0;
4095: #reduce overall contract carryover balance
+4096: current_contract = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4096, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_current_contract, __pyx_t_1);
__pyx_t_1 = 0;
+4097: current_contract.tot_carryover -= remaining_carryover[contract_key]*carryover_fraction
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = PyNumber_Multiply(__pyx_t_14, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover, __pyx_t_14) < 0) __PYX_ERR(0, 4097, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
4098: #reduce individual contract carryover balance (only on undelivered carryover
+4099: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4099, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4099, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4099, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4099, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4100: district_obj.carryover[contract_key] -= max(district_obj.carryover[contract_key] - district_obj.deliveries[contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4100, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->carryover);
__pyx_t_20 = __pyx_v_district_obj->carryover;
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_5 = __pyx_v_contract_key;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4100, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_20, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_12 = 0.0;
if (unlikely(__pyx_v_district_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4100, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->carryover, __pyx_v_contract_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (unlikely(__pyx_v_district_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4100, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_Subtract(__pyx_t_19, __pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_16 = PyObject_RichCompare(__pyx_t_19, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_17) {
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_13 = __pyx_t_16;
__pyx_t_16 = 0;
} else {
__Pyx_INCREF(__pyx_t_11);
__pyx_t_13 = __pyx_t_11;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_Multiply(__pyx_t_13, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4100, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_20, __pyx_t_5, __pyx_t_13) < 0)) __PYX_ERR(0, 4100, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+4101: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4101, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4101, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4101, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4102: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4102, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_18); __Pyx_INCREF(__pyx_t_13); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4102, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4103: private_obj.carryover[district_key][contract_key] -= max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4103, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_11 = __pyx_v_contract_key;
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_12 = 0.0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4103, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_contract_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4103, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_contract_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Subtract(__pyx_t_19, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_21 = PyObject_RichCompare(__pyx_t_19, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_17) {
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_16 = __pyx_t_21;
__pyx_t_21 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_16 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_Multiply(__pyx_t_16, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_11, __pyx_t_16) < 0)) __PYX_ERR(0, 4103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4104: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4104, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4104, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4104, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4104, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4105: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4105, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_18 = 0;
for (;;) {
if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_18); __Pyx_INCREF(__pyx_t_13); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4105, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4105, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4106: private_obj.carryover[district_key][contract_key] -= max(private_obj.carryover[district_key][contract_key] - private_obj.deliveries[district_key][contract_key][wateryear], 0.0)*carryover_fraction
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4106, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_INCREF(__pyx_v_contract_key);
__pyx_t_11 = __pyx_v_contract_key;
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_12 = 0.0;
if (unlikely(__pyx_v_private_obj->carryover == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4106, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_contract_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_private_obj->deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4106, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->deliveries, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_contract_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Subtract(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_1, __pyx_t_21, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_17) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_15 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_21);
__pyx_t_15 = __pyx_t_21;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Multiply(__pyx_t_15, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceSubtract(__pyx_t_16, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_11, __pyx_t_15) < 0)) __PYX_ERR(0, 4106, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4107:
4108: else:
4109: #if no carryover, just add the spill to the contract adjustment (this amount is subtracted from total contract allocation)
+4110: self.allocation_losses[key] += max(spill, 0.0)
/*else*/ {
if (unlikely(__pyx_v_self->allocation_losses == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4110, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->allocation_losses);
__pyx_t_20 = __pyx_v_self->allocation_losses;
__Pyx_INCREF(__pyx_v_key);
__pyx_t_2 = __pyx_v_key;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4110, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_t_20, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_12 = 0.0;
__Pyx_INCREF(__pyx_v_spill);
__pyx_t_5 = __pyx_v_spill;
__pyx_t_11 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_11, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_17) {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_13 = __pyx_t_15;
__pyx_t_15 = 0;
} else {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_13 = __pyx_t_5;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(__pyx_t_20 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4110, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_20, __pyx_t_2, __pyx_t_5) < 0)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__pyx_L25:;
4111:
4112:
+4113: def find_recharge_bank(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_69find_recharge_bank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_69find_recharge_bank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_m = 0;
CYTHON_UNUSED PyObject *__pyx_v_wyt = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_bank (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_wyt,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_recharge_bank", 1, 2, 2, 1); __PYX_ERR(0, 4113, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_bank") < 0)) __PYX_ERR(0, 4113, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_m = values[0];
__pyx_v_wyt = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_recharge_bank", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4113, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_68find_recharge_bank(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_m, __pyx_v_wyt);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_68find_recharge_bank(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt) {
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_participant_key = NULL;
PyObject *__pyx_v_num_districts = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_decline_coef = NULL;
PyObject *__pyx_v_m_counter = NULL;
PyObject *__pyx_v_decline_counter = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_bank", 0);
__Pyx_TraceCall("find_recharge_bank", __pyx_f[0], 4113, 0, __PYX_ERR(0, 4113, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_num_districts);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_decline_coef);
__Pyx_XDECREF(__pyx_v_m_counter);
__Pyx_XDECREF(__pyx_v_decline_counter);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4114: ###this function projects the total GW recharge
4115: ###capacity in each waterbank out 12 months, and then allocates
4116: ###that capacity to individual districts based on their
4117: ###ownership stake in teh waterbank
4118: cdef Waterbank waterbank_obj
4119: cdef District district_obj
4120: cdef Private private_obj
4121: cdef Reservoir reservoir_obj
4122:
+4123: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4123, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4123, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 4123, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4124: ##direct recharge capacity is directly related to
4125: ##how long the banks have been used continuously
4126: #this month use tracks if the bank has been used in the past month
+4127: if waterbank_obj.thismonthuse == 1:
__pyx_t_4 = ((__pyx_v_waterbank_obj->thismonthuse == 1) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+4128: waterbank_obj.monthusecounter += 1
__pyx_v_waterbank_obj->monthusecounter = (__pyx_v_waterbank_obj->monthusecounter + 1);
+4129: waterbank_obj.monthemptycounter = 0
__pyx_v_waterbank_obj->monthemptycounter = 0;
+4130: if waterbank_obj.monthusecounter > 11:
__pyx_t_4 = ((__pyx_v_waterbank_obj->monthusecounter > 11) != 0);
if (__pyx_t_4) {
/* … */
}
+4131: waterbank_obj.monthusecounter = 11
__pyx_v_waterbank_obj->monthusecounter = 11;
4132: #this function describes how recharge rate declines over time
+4133: waterbank_obj.recharge_rate *= waterbank_obj.recharge_decline[waterbank_obj.monthusecounter]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recharge_rate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_waterbank_obj->recharge_decline == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4133, __pyx_L1_error) } __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_waterbank_obj->recharge_decline, __pyx_v_waterbank_obj->monthusecounter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_waterbank_obj->recharge_rate = __pyx_t_7;
4134: else:
4135: #in order for recharge rate to 'bounce back', needs 3 months of
4136: #continuous non-use
+4137: waterbank_obj.monthemptycounter += 1
/*else*/ {
__pyx_v_waterbank_obj->monthemptycounter = (__pyx_v_waterbank_obj->monthemptycounter + 1);
+4138: if waterbank_obj.monthemptycounter == 3:
__pyx_t_4 = ((__pyx_v_waterbank_obj->monthemptycounter == 3) != 0);
if (__pyx_t_4) {
/* … */
}
}
__pyx_L5:;
+4139: waterbank_obj.monthusecounter = 0
__pyx_v_waterbank_obj->monthusecounter = 0;
+4140: waterbank_obj.recharge_rate = waterbank_obj.initial_recharge*cfs_tafd
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_waterbank_obj->initial_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_waterbank_obj->recharge_rate = __pyx_t_7;
+4141: waterbank_obj.thismonthuse = 0
__pyx_v_waterbank_obj->thismonthuse = 0;
4142: #if m == 10:
4143: #waterbank_obj.recharge_rate = waterbank_obj.initial_recharge*cfs_tafd
4144: ###distribute this recharge capacity among districts (based on ownership share)
+4145: for participant_key in waterbank_obj.participant_list:
if (unlikely(__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4145, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4145, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4146: num_districts = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4146, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_5);
__pyx_t_5 = 0;
+4147: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4147, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_District); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4147, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_4) {
/* … */
goto __pyx_L10;
}
+4148: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4148, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4148, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+4149: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+4150: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4150, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4150, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_4) {
/* … */
}
__pyx_L10:;
+4151: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4151, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4151, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
+4152: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
4153:
+4154: participant_obj.total_banked_storage += waterbank_obj.banked[participant_key]
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4154, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_total_banked_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_waterbank_obj->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4154, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->banked, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4154, __pyx_L1_error) }
if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_obj, __pyx_n_s_total_banked_storage, __pyx_t_9) < 0) __PYX_ERR(0, 4154, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4155: participant_obj.max_direct_recharge[0] += waterbank_obj.ownership[participant_key]*waterbank_obj.recharge_rate/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4155, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_9, __pyx_t_10, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4155, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recharge_rate); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_5, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_v_num_districts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_t_10, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4155, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4156: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4156, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4156, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4156, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4156, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_12));
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4157: if participant_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4157, __pyx_L1_error) }
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyInt_EqObjC(__pyx_t_11, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4157, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_4) {
/* … */
}
+4158: reservoir_obj.max_direct_recharge[0] += waterbank_obj.ownership[participant_key]*waterbank_obj.recharge_rate/num_districts
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4158, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_13 = __pyx_v_reservoir_obj->max_direct_recharge;
__pyx_t_14 = 0;
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4158, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_GetItemInt_List(__pyx_t_13, __pyx_t_14, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4158, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = PyNumber_Multiply(__pyx_t_11, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_v_num_districts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4158, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_t_14, __pyx_t_5, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 4158, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4159: ##each month of consecutive use results in the recharge capacity of the bank declining
4160: ##we want to know what is the recharge capacity available in the future, considering
4161: ##continuous use from this point on
+4162: decline_coef = 1.0
__Pyx_INCREF(__pyx_float_1_0); __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4163: for m_counter in range(1,12):
for (__pyx_t_15 = 1; __pyx_t_15 < 12; __pyx_t_15+=1) {
__pyx_t_9 = __Pyx_PyInt_From_long(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_9);
__pyx_t_9 = 0;
+4164: decline_counter = waterbank_obj.monthusecounter + m_counter
__pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_waterbank_obj->monthusecounter); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyNumber_Add(__pyx_t_9, __pyx_v_m_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_5); __pyx_t_5 = 0;
+4165: if decline_counter > 11:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4165, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* … */ }
+4166: decline_counter = 11
__Pyx_INCREF(__pyx_int_11); __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_11);
+4167: decline_coef *= waterbank_obj.recharge_decline[decline_counter]
if (unlikely(__pyx_v_waterbank_obj->recharge_decline == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4167, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_waterbank_obj->recharge_decline, __pyx_v_decline_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_9);
__pyx_t_9 = 0;
+4168: participant_obj.max_direct_recharge[m_counter] += waterbank_obj.ownership[participant_key]*waterbank_obj.recharge_rate*decline_coef/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4168, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_5 = __pyx_v_m_counter;
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4168, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recharge_rate); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_Multiply(__pyx_t_16, __pyx_v_decline_coef); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_v_num_districts); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_16); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_5, __pyx_t_11) < 0)) __PYX_ERR(0, 4168, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4169: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4169, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4169, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4169, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
+4170: if participant_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4170, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4170, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4170, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_11, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4170, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4170, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_4) {
/* … */
}
+4171: reservoir_obj.max_direct_recharge[m_counter] += waterbank_obj.ownership[participant_key]*waterbank_obj.recharge_rate*decline_coef/num_districts
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4171, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_13 = __pyx_v_reservoir_obj->max_direct_recharge;
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_5 = __pyx_v_m_counter;
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4171, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_waterbank_obj->ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4171, __pyx_L1_error)
}
__pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_waterbank_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_16, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_12, __pyx_v_decline_coef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_v_num_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4171, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_5, __pyx_t_6) < 0)) __PYX_ERR(0, 4171, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4172:
4173:
+4174: def find_leiu_exchange(self, wateryear, dowy):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_71find_leiu_exchange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_71find_leiu_exchange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_wateryear = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_leiu_exchange (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_wateryear,&__pyx_n_s_dowy,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_leiu_exchange", 1, 2, 2, 1); __PYX_ERR(0, 4174, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_leiu_exchange") < 0)) __PYX_ERR(0, 4174, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_wateryear = values[0];
__pyx_v_dowy = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_leiu_exchange", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4174, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_leiu_exchange", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_70find_leiu_exchange(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_wateryear, __pyx_v_dowy);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_70find_leiu_exchange(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_wateryear, PyObject *__pyx_v_dowy) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
PyObject *__pyx_v_participant_key = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_private_obj = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_contract_key2 = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_leiu_exchange", 0);
__Pyx_TraceCall("find_leiu_exchange", __pyx_f[0], 4174, 0, __PYX_ERR(0, 4174, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_leiu_exchange", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_contract_key2);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4175: cdef District district_obj, leiu_obj
4176: cdef Contract contract_obj
4177:
+4178: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4178, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4178, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4178, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4178, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4179: for participant_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4179, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4179, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4180: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4180, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4180, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_District); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4180, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4180, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4180, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_7) {
/* … */
goto __pyx_L7;
}
+4181: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4181, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4181, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4181, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+4182: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+4183: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4183, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4183, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_7) {
/* … */
}
__pyx_L7:;
+4184: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4184, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_private_obj, __pyx_t_5);
__pyx_t_5 = 0;
+4185: participant_obj = private_obj
__Pyx_INCREF(__pyx_v_private_obj); __Pyx_XDECREF_SET(__pyx_v_participant_obj, __pyx_v_private_obj);
4186:
+4187: for contract_key in leiu_obj.contract_list:
if (unlikely(__pyx_v_leiu_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4187, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_leiu_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4187, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4187, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4188: for contract_key2 in participant_obj.contract_list:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4188, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
__pyx_t_9 = __pyx_t_6; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4188, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_9))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4188, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4188, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
} else {
__pyx_t_6 = __pyx_t_11(__pyx_t_9);
if (unlikely(!__pyx_t_6)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4188, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_6);
}
__Pyx_XDECREF_SET(__pyx_v_contract_key2, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4189: if contract_key2 == contract_key:
__pyx_t_6 = PyObject_RichCompare(__pyx_v_contract_key2, __pyx_v_contract_key, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4189, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_7) { /* … */ }
+4190: if dowy < 180:
__pyx_t_6 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_180, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4190, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_7) { /* … */ goto __pyx_L13; }
+4191: contract_obj = self.contract_keys[contract_key]
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4191, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 4191, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_6));
__pyx_t_6 = 0;
+4192: if contract_obj.type == 'right':
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4192, __pyx_L1_error) __pyx_t_12 = (__pyx_t_7 != 0); if (__pyx_t_12) { /* … */ goto __pyx_L14; }
+4193: participant_obj.max_leiu_exchange += max(leiu_obj.rights[contract_key]['capacity'] * contract_obj.total * leiu_obj.leiu_ownership[participant_key], 0.0)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4193, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = 0.0;
if (unlikely(__pyx_v_leiu_obj->rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4193, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->rights, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_14, __pyx_n_u_capacity); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_contract_obj->total); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4193, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyNumber_Multiply(__pyx_t_16, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_16, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_12) {
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_14 = __pyx_t_17;
__pyx_t_17 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_14 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4193, __pyx_L1_error) }
if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange, __pyx_t_15) < 0) __PYX_ERR(0, 4193, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
4194: else:
+4195: participant_obj.max_leiu_exchange += max(leiu_obj.project_contract[contract_key] * contract_obj.total * leiu_obj.leiu_ownership[participant_key], 0.0)
/*else*/ {
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4195, __pyx_L1_error) }
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_13 = 0.0;
if (unlikely(__pyx_v_leiu_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4195, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->project_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_contract_obj->total); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = PyNumber_Multiply(__pyx_t_14, __pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4195, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_14 = PyNumber_Multiply(__pyx_t_17, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_16 = PyObject_RichCompare(__pyx_t_17, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_12) {
__pyx_t_16 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = __pyx_t_16;
__pyx_t_16 = 0;
} else {
__Pyx_INCREF(__pyx_t_14);
__pyx_t_6 = __pyx_t_14;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4195, __pyx_L1_error) }
if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange, __pyx_t_14) < 0) __PYX_ERR(0, 4195, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__pyx_L14:;
4196: else:
+4197: participant_obj.max_leiu_exchange += max(leiu_obj.projected_supply[contract_key] * leiu_obj.leiu_ownership[participant_key], 0.0)
/*else*/ {
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4197, __pyx_L1_error) }
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_13 = 0.0;
if (unlikely(__pyx_v_leiu_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4197, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->projected_supply, __pyx_v_contract_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4197, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = PyNumber_Multiply(__pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_12) {
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_15 = __pyx_t_17;
__pyx_t_17 = 0;
} else {
__Pyx_INCREF(__pyx_t_16);
__pyx_t_15 = __pyx_t_16;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4197, __pyx_L1_error) }
if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_exchange, __pyx_t_16) < 0) __PYX_ERR(0, 4197, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__pyx_L13:;
4198:
4199:
+4200: def find_recharge_leiu(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_73find_recharge_leiu(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_73find_recharge_leiu(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_wyt = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_leiu (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_wyt,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_recharge_leiu", 1, 2, 2, 1); __PYX_ERR(0, 4200, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_leiu") < 0)) __PYX_ERR(0, 4200, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_m = values[0];
__pyx_v_wyt = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_recharge_leiu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4200, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_leiu", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_72find_recharge_leiu(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_m, __pyx_v_wyt);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_72find_recharge_leiu(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_m, PyObject *__pyx_v_wyt) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_bank_total_supply = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_participant_key = NULL;
PyObject *__pyx_v_num_districts = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_decline_coef = NULL;
PyObject *__pyx_v_m_counter = NULL;
PyObject *__pyx_v_decline_counter = NULL;
PyObject *__pyx_v_future_month = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_leiu", 0);
__Pyx_TraceCall("find_recharge_leiu", __pyx_f[0], 4200, 0, __PYX_ERR(0, 4200, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_leiu", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_bank_total_supply);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_num_districts);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_decline_coef);
__Pyx_XDECREF(__pyx_v_m_counter);
__Pyx_XDECREF(__pyx_v_decline_counter);
__Pyx_XDECREF(__pyx_v_future_month);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4201: ###this function projects the total GW recharge
4202: ###capacity in each in-leiu banking district out 12 months, and then allocates
4203: ###that capacity to individual districts based on their
4204: ###ownership stake in teh waterbank
4205: cdef District district_obj, leiu_obj
4206: cdef Private private_obj
4207: cdef Reservoir reservoir_obj
4208:
4209: #in-leiu banks combine both direct and in-leiu recharge
4210: #capacity, so both must be forecasting moving forward (12 months)
+4211: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4211, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4211, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4211, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4212: if leiu_obj.thismonthuse == 1:
__pyx_t_4 = ((__pyx_v_leiu_obj->thismonthuse == 1) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+4213: leiu_obj.monthusecounter += 1
__pyx_v_leiu_obj->monthusecounter = (__pyx_v_leiu_obj->monthusecounter + 1);
+4214: leiu_obj.monthemptycounter = 0
__pyx_v_leiu_obj->monthemptycounter = 0;
+4215: if leiu_obj.monthusecounter > 11:
__pyx_t_4 = ((__pyx_v_leiu_obj->monthusecounter > 11) != 0);
if (__pyx_t_4) {
/* … */
}
+4216: leiu_obj.monthusecounter = 11
__pyx_v_leiu_obj->monthusecounter = 11;
+4217: leiu_obj.recharge_rate *= leiu_obj.recharge_decline[leiu_obj.monthusecounter]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_leiu_obj->recharge_decline == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4217, __pyx_L1_error) } __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_leiu_obj->recharge_decline, __pyx_v_leiu_obj->monthusecounter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_leiu_obj->recharge_rate = __pyx_t_7;
4218: else:
+4219: leiu_obj.monthemptycounter += 1
/*else*/ {
__pyx_v_leiu_obj->monthemptycounter = (__pyx_v_leiu_obj->monthemptycounter + 1);
+4220: leiu_obj.recharge_rate += max(leiu_obj.in_district_direct_recharge*cfs_tafd - leiu_obj.recharge_rate, 0.0)*0.5
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0.0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_leiu_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Subtract(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_4) { __pyx_t_9 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __pyx_t_9; __pyx_t_9 = 0; } else { __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = __pyx_t_5; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_float_0_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_leiu_obj->recharge_rate = __pyx_t_7;
+4221: if leiu_obj.monthemptycounter == 3:
__pyx_t_4 = ((__pyx_v_leiu_obj->monthemptycounter == 3) != 0);
if (__pyx_t_4) {
/* … */
}
}
__pyx_L5:;
+4222: leiu_obj.monthusecounter = 0
__pyx_v_leiu_obj->monthusecounter = 0;
+4223: leiu_obj.recharge_rate = leiu_obj.in_district_direct_recharge*cfs_tafd
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_leiu_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_leiu_obj->recharge_rate = __pyx_t_7;
+4224: leiu_obj.thismonthuse = 0
__pyx_v_leiu_obj->thismonthuse = 0;
+4225: if m == 10:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_4) { /* … */ }
+4226: leiu_obj.recharge_rate = leiu_obj.in_district_direct_recharge*cfs_tafd
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_leiu_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_leiu_obj->recharge_rate = __pyx_t_7;
4227:
4228: ##find district share of recharge capacity
+4229: bank_total_supply = 0.0
__Pyx_INCREF(__pyx_float_0_0); __Pyx_XDECREF_SET(__pyx_v_bank_total_supply, __pyx_float_0_0);
+4230: for contract_key in leiu_obj.contract_list:
if (unlikely(__pyx_v_leiu_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4230, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->contract_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4230, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4231: bank_total_supply += leiu_obj.projected_supply[contract_key]
if (unlikely(__pyx_v_leiu_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4231, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->projected_supply, __pyx_v_contract_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4231, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_bank_total_supply, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4231, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_bank_total_supply, __pyx_t_6);
__pyx_t_6 = 0;
+4232: if leiu_obj.key == "SMI":
__pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_leiu_obj->key, __pyx_n_u_SMI, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4232, __pyx_L1_error) __pyx_t_11 = (__pyx_t_4 != 0); if (__pyx_t_11) { /* … */ }
+4233: for participant_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4233, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4233, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4234: num_districts = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4234, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_6);
__pyx_t_6 = 0;
+4235: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4235, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_District); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4235, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_11) {
/* … */
goto __pyx_L14;
}
+4236: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4236, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4236, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+4237: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+4238: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4238, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4238, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4238, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4238, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4238, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_11) {
/* … */
}
__pyx_L14:;
+4239: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4239, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4239, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4239, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_6));
__pyx_t_6 = 0;
+4240: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
4241:
4242: #current direct recharge
+4243: participant_obj.max_direct_recharge[0] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.recharge_rate/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4243, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = 0;
__pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4243, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_13 = PyNumber_Multiply(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_v_num_districts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_t_12, __pyx_t_13, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4243, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4244: #current in leiu recharge (based on irrigation demands of the in-leiu bank)
+4245: if leiu_obj.inleiubanked[participant_key] < leiu_obj.inleiucap[participant_key]:
if (unlikely(__pyx_v_leiu_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4245, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_leiu_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4245, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_6, __pyx_t_13, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4245, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4245, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_11) {
/* … */
}
+4246: participant_obj.max_leiu_recharge[0] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.monthlydemand[wyt][m-1]*(1.0 - min(bank_total_supply/leiu_obj.annualdemand[0], 1.0))/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4246, __pyx_L1_error) }
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_recharge); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = 0;
__pyx_t_13 = __Pyx_GetItemInt(__pyx_t_8, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4246, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_leiu_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4246, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_7 = 1.0;
if (unlikely(__pyx_v_leiu_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4246, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_v_bank_total_supply, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_5, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_11) {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = __pyx_t_15;
__pyx_t_15 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_14 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_14, 1.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_v_num_districts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_t_12, __pyx_t_14, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4246, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
4247:
+4248: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4248, __pyx_L1_error)
}
__pyx_t_8 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4248, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4248, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4248, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4249: if participant_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4249, __pyx_L1_error) }
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_14, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4249, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (__pyx_t_11) {
/* … */
}
+4250: if leiu_obj.inleiubanked[participant_key] < leiu_obj.inleiucap[participant_key]:
if (unlikely(__pyx_v_leiu_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4250, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4250, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(__pyx_v_leiu_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4250, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4250, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_14, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4250, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4250, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_11) {
/* … */
}
+4251: reservoir_obj.max_direct_recharge[0] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.recharge_rate/num_districts
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4251, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_16 = __pyx_v_reservoir_obj->max_direct_recharge;
__pyx_t_17 = 0;
if (unlikely(__pyx_t_16 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4251, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_GetItemInt_List(__pyx_t_16, __pyx_t_17, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4251, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_v_num_districts); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_t_16 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4251, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_17, __pyx_t_9, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
4252:
4253: ##each month of consecutive use results in the recharge capacity of the bank declining
4254: ##we want to know what is the recharge capacity available in the future, considering
4255: ##continuous use from this point on
+4256: decline_coef = 1.0
__Pyx_INCREF(__pyx_float_1_0); __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4257: for m_counter in range(1,12):
for (__pyx_t_18 = 1; __pyx_t_18 < 12; __pyx_t_18+=1) {
__pyx_t_8 = __Pyx_PyInt_From_long(__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_8);
__pyx_t_8 = 0;
+4258: decline_counter = leiu_obj.monthusecounter + m_counter
__pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_leiu_obj->monthusecounter); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyNumber_Add(__pyx_t_8, __pyx_v_m_counter); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_9); __pyx_t_9 = 0;
+4259: future_month = m - 1 + m_counter
__pyx_t_9 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = PyNumber_Add(__pyx_t_9, __pyx_v_m_counter); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_future_month, __pyx_t_8); __pyx_t_8 = 0;
+4260: if future_month > 11:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_future_month, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4260, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_11) { /* … */ }
+4261: future_month -= 12
__pyx_t_8 = __Pyx_PyInt_SubtractObjC(__pyx_v_future_month, __pyx_int_12, 12, 1, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_future_month, __pyx_t_8); __pyx_t_8 = 0;
+4262: if decline_counter > 12:
__pyx_t_8 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_12, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4262, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_11) { /* … */ }
+4263: decline_counter = 12
__Pyx_INCREF(__pyx_int_12); __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_12);
+4264: decline_coef *= leiu_obj.recharge_decline[decline_counter]
if (unlikely(__pyx_v_leiu_obj->recharge_decline == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4264, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_leiu_obj->recharge_decline, __pyx_v_decline_counter); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_9);
__pyx_t_9 = 0;
4265: #future (12 months) direct recharge
+4266: participant_obj.max_direct_recharge[m_counter] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.recharge_rate*decline_coef/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4266, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_8 = __pyx_v_m_counter;
__pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4266, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_15 = PyNumber_Multiply(__pyx_t_13, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_15, __pyx_v_decline_coef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_v_num_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_8, __pyx_t_6) < 0)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
4267: #future (12 months) in leiu recharge
+4268: if leiu_obj.inleiubanked[participant_key] < leiu_obj.inleiucap[participant_key]:
if (unlikely(__pyx_v_leiu_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4268, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4268, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_leiu_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4268, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4268, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_9, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4268, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4268, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_11) {
/* … */
}
+4269: participant_obj.max_leiu_recharge[m_counter] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.monthlydemand[wyt][future_month]*(1.0 - min(bank_total_supply/leiu_obj.annualdemand[0], 1.0))/num_districts
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4269, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_max_leiu_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_8 = __pyx_v_m_counter;
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4269, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_v_leiu_obj->monthlydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4269, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->monthlydemand, __pyx_v_wyt); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_future_month); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_15, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_7 = 1.0;
if (unlikely(__pyx_v_leiu_obj->annualdemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4269, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->annualdemand, __pyx_int_0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_15 = __Pyx_PyNumber_Divide(__pyx_v_bank_total_supply, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_5, __pyx_t_15, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_11) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_13 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_15);
__pyx_t_13 = __pyx_t_15;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_13, 1.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_Multiply(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_v_num_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_8, __pyx_t_13) < 0)) __PYX_ERR(0, 4269, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4270: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4270, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4270, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4270, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4270, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
+4271: if participant_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4271, __pyx_L1_error) }
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_t_13, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4271, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_11) {
/* … */
}
+4272: if leiu_obj.inleiubanked[participant_key] < leiu_obj.inleiucap[participant_key]:
if (unlikely(__pyx_v_leiu_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4272, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(__pyx_v_leiu_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4272, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_8, __pyx_t_13, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4272, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4272, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_11) {
/* … */
}
+4273: reservoir_obj.max_direct_recharge[m_counter] += leiu_obj.leiu_ownership[participant_key]*leiu_obj.recharge_rate*decline_coef/num_districts
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4273, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_16 = __pyx_v_reservoir_obj->max_direct_recharge;
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_15 = __pyx_v_m_counter;
if (unlikely(__pyx_t_16 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4273, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4273, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_leiu_obj->recharge_rate); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_14 = PyNumber_Multiply(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Multiply(__pyx_t_14, __pyx_v_decline_coef); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_v_num_districts); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(__pyx_t_16 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4273, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_15, __pyx_t_9) < 0)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
4274:
4275:
+4276: def find_recharge_indistrict(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_75find_recharge_indistrict(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_75find_recharge_indistrict(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_m = 0;
CYTHON_UNUSED PyObject *__pyx_v_wyt = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_indistrict (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_wyt,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("find_recharge_indistrict", 1, 2, 2, 1); __PYX_ERR(0, 4276, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_indistrict") < 0)) __PYX_ERR(0, 4276, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_m = values[0];
__pyx_v_wyt = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("find_recharge_indistrict", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4276, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_indistrict", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_74find_recharge_indistrict(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_m, __pyx_v_wyt);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_74find_recharge_indistrict(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_decline_coef = NULL;
PyObject *__pyx_v_m_counter = NULL;
PyObject *__pyx_v_decline_counter = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_recharge_indistrict", 0);
__Pyx_TraceCall("find_recharge_indistrict", __pyx_f[0], 4276, 0, __PYX_ERR(0, 4276, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_recharge_indistrict", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_decline_coef);
__Pyx_XDECREF(__pyx_v_m_counter);
__Pyx_XDECREF(__pyx_v_decline_counter);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4277: ###this function projects the total GW recharge
4278: ###capacity within the boundaries of each district,
4279: ###then adds that recharge to the expected recharge from
4280: ###banking opportunities
4281: cdef District district_obj
4282: cdef Reservoir reservoir_obj
4283:
+4284: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4284, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4284, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4284, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4285: if district_obj.in_district_storage > 0.0 and not district_obj.in_leiu_banking:
__pyx_t_5 = ((__pyx_v_district_obj->in_district_storage > 0.0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_4 = __pyx_t_5;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_5 = ((!(__pyx_v_district_obj->in_leiu_banking != 0)) != 0);
__pyx_t_4 = __pyx_t_5;
__pyx_L6_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+4286: if district_obj.thismonthuse == 1:
__pyx_t_4 = ((__pyx_v_district_obj->thismonthuse == 1) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L8;
}
+4287: district_obj.monthusecounter += 1
__pyx_v_district_obj->monthusecounter = (__pyx_v_district_obj->monthusecounter + 1);
+4288: district_obj.monthemptycounter = 0
__pyx_v_district_obj->monthemptycounter = 0;
+4289: if district_obj.monthusecounter > 11:
__pyx_t_4 = ((__pyx_v_district_obj->monthusecounter > 11) != 0);
if (__pyx_t_4) {
/* … */
}
+4290: district_obj.monthusecounter = 11
__pyx_v_district_obj->monthusecounter = 11;
+4291: district_obj.recharge_rate *= district_obj.recharge_decline[district_obj.monthusecounter]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_district_obj->recharge_decline == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4291, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_district_obj->recharge_decline, __pyx_v_district_obj->monthusecounter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_InPlaceMultiply(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_district_obj->recharge_rate = __pyx_t_8;
4292: else:
+4293: district_obj.monthemptycounter += 1
/*else*/ {
__pyx_v_district_obj->monthemptycounter = (__pyx_v_district_obj->monthemptycounter + 1);
+4294: district_obj.recharge_rate += max(district_obj.in_district_direct_recharge*cfs_tafd - district_obj.recharge_rate, 0.0)*0.5
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0.0; __pyx_t_6 = PyFloat_FromDouble(__pyx_v_district_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyNumber_Subtract(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyObject_RichCompare(__pyx_t_9, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_4) { __pyx_t_10 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __pyx_t_10; __pyx_t_10 = 0; } else { __Pyx_INCREF(__pyx_t_6); __pyx_t_3 = __pyx_t_6; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_3, __pyx_float_0_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_district_obj->recharge_rate = __pyx_t_8;
+4295: if district_obj.monthemptycounter == 3:
__pyx_t_4 = ((__pyx_v_district_obj->monthemptycounter == 3) != 0);
if (__pyx_t_4) {
/* … */
}
}
__pyx_L8:;
+4296: district_obj.monthusecounter = 0
__pyx_v_district_obj->monthusecounter = 0;
+4297: district_obj.recharge_rate = district_obj.in_district_direct_recharge*cfs_tafd
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_district_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_district_obj->recharge_rate = __pyx_t_8;
+4298: district_obj.thismonthuse = 0
__pyx_v_district_obj->thismonthuse = 0;
+4299: if m == 10:
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_4) { /* … */ }
+4300: district_obj.recharge_rate = district_obj.in_district_direct_recharge*cfs_tafd
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_district_obj->in_district_direct_recharge); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_district_obj->recharge_rate = __pyx_t_8;
+4301: if district_obj.recharge_rate > 0.0:
__pyx_t_4 = ((__pyx_v_district_obj->recharge_rate > 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
+4302: district_obj.max_direct_recharge[0] += district_obj.recharge_rate
if (unlikely(__pyx_v_district_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4302, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->max_direct_recharge);
__pyx_t_11 = __pyx_v_district_obj->max_direct_recharge;
__pyx_t_12 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4302, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_t_11, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4302, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_t_12, __pyx_t_7, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 4302, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4303: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4303, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4303, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4303, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4304: if district_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(__pyx_v_district_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4304, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4304, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
}
+4305: reservoir_obj.max_direct_recharge[0] += district_obj.recharge_rate
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4305, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_11 = __pyx_v_reservoir_obj->max_direct_recharge;
__pyx_t_13 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4305, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_t_11, __pyx_t_13, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4305, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_t_13, __pyx_t_10, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4306:
+4307: decline_coef = 1.0
__Pyx_INCREF(__pyx_float_1_0); __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4308: for m_counter in range(1,12):
for (__pyx_t_14 = 1; __pyx_t_14 < 12; __pyx_t_14+=1) {
__pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_7);
__pyx_t_7 = 0;
+4309: decline_counter = district_obj.monthusecounter + m_counter
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_district_obj->monthusecounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_v_m_counter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_10); __pyx_t_10 = 0;
+4310: if decline_counter > 12:
__pyx_t_10 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_12, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4310, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_4) { /* … */ }
+4311: decline_counter = 12
__Pyx_INCREF(__pyx_int_12); __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_12);
+4312: decline_coef *= district_obj.recharge_decline[decline_counter]
if (unlikely(__pyx_v_district_obj->recharge_decline == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4312, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_district_obj->recharge_decline, __pyx_v_decline_counter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4312, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_7 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4312, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_7);
__pyx_t_7 = 0;
+4313: district_obj.max_direct_recharge[m_counter] += district_obj.recharge_rate*decline_coef
if (unlikely(__pyx_v_district_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4313, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_district_obj->max_direct_recharge);
__pyx_t_11 = __pyx_v_district_obj->max_direct_recharge;
__Pyx_INCREF(__pyx_v_m_counter);
__pyx_t_7 = __pyx_v_m_counter;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4313, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_v_decline_coef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4313, __pyx_L1_error)
}
if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4314: for reservoir_obj in self.reservoir_list:
if (unlikely(__pyx_v_self->reservoir_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4314, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_self->reservoir_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4314, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12reservoir_cy_Reservoir))))) __PYX_ERR(0, 4314, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
+4315: if district_obj.reservoir_contract[reservoir_obj.key] == 1:
if (unlikely(__pyx_v_district_obj->reservoir_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4315, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->reservoir_contract, __pyx_v_reservoir_obj->key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4315, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
}
+4316: reservoir_obj.max_direct_recharge[0] += district_obj.recharge_rate*decline_coef
if (unlikely(__pyx_v_reservoir_obj->max_direct_recharge == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4316, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir_obj->max_direct_recharge);
__pyx_t_11 = __pyx_v_reservoir_obj->max_direct_recharge;
__pyx_t_13 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4316, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_t_11, __pyx_t_13, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4316, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_district_obj->recharge_rate); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4316, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_10 = PyNumber_Multiply(__pyx_t_6, __pyx_v_decline_coef); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4316, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4316, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4316, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_t_13, __pyx_t_6, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 4316, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4317:
4318:
+4319: def update_leiu_capacity(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_77update_leiu_capacity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_77update_leiu_capacity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_leiu_capacity (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_76update_leiu_capacity(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_76update_leiu_capacity(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_leiu_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_participant_key = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_v_contract_key2 = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_leiu_capacity", 0);
__Pyx_TraceCall("update_leiu_capacity", __pyx_f[0], 4319, 0, __PYX_ERR(0, 4319, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_leiu_capacity", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_leiu_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_contract_key2);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4320: cdef District district_obj, leiu_obj
4321: cdef Private private_obj
4322:
4323: #initialize individual banking partner's recovery capacity
+4324: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4324, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4324, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4325: for participant_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4325, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4325, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4325, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4326: if participant_key != leiu_obj.key:
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_participant_key, __pyx_v_leiu_obj->key, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4326, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+4327: self.district_keys[participant_key].extra_leiu_recovery = 0.0
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4327, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_extra_leiu_recovery, __pyx_float_0_0) < 0) __PYX_ERR(0, 4327, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4328: #find individual banking partner's (district') recovery capacity based on their total
4329: #supply in reservoirs accessable by their partners
+4330: for leiu_obj in self.leiu_list:
if (unlikely(__pyx_v_self->leiu_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4330, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_self->leiu_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4330, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4330, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_leiu_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4331: for participant_key in leiu_obj.participant_list:
if (unlikely(__pyx_v_leiu_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4331, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_leiu_obj->participant_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4331, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_participant_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4332: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4332, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_District); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_6) {
/* … */
goto __pyx_L12;
}
+4333: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4333, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4333, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
+4334: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+4335: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4335, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_6) {
/* … */
}
__pyx_L12:;
+4336: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4336, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4336, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
+4337: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
+4338: for contract_key in participant_obj.contract_list:#if the banking partner has a contract at that reservoir, they can trade water there
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4338, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4338, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_7))) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4338, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4338, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_9(__pyx_t_7);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4338, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4339: for contract_key2 in leiu_obj.contract_list:
if (unlikely(__pyx_v_leiu_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4339, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_leiu_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_11); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4339, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key2, __pyx_t_11);
__pyx_t_11 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4340: if contract_key == contract_key2:
__pyx_t_11 = PyObject_RichCompare(__pyx_v_contract_key, __pyx_v_contract_key2, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4340, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4340, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_6) { /* … */ }
+4341: participant_obj.extra_leiu_recovery += leiu_obj.projected_supply[contract_key2]*leiu_obj.leiu_trade_cap*leiu_obj.leiu_ownership[participant_key]
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4341, __pyx_L1_error) }
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_extra_leiu_recovery); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_leiu_obj->projected_supply == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4341, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->projected_supply, __pyx_v_contract_key2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = PyFloat_FromDouble(__pyx_v_leiu_obj->leiu_trade_cap); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = PyNumber_Multiply(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(__pyx_v_leiu_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4341, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_leiu_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_12 = PyNumber_Multiply(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4341, __pyx_L1_error) }
if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_obj, __pyx_n_s_extra_leiu_recovery, __pyx_t_13) < 0) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4342:
4343: #####################################################################################################################
4344: #####################################################################################################################
4345: #####################################################################################################################
4346:
4347:
4348: #####################################################################################################################
4349: ############################# Flood operations ############################################################
4350: #####################################################################################################################
4351:
4352:
+4353: cdef void flood_operations(self, int t, int m, int dowy, int wateryear, Reservoir reservoir, str flow_type, int overflow_toggle, str wyt):
static void __pyx_f_11calfews_src_8model_cy_5Model_flood_operations(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, int __pyx_v_t, int __pyx_v_m, int __pyx_v_dowy, int __pyx_v_wateryear, struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir, PyObject *__pyx_v_flow_type, int __pyx_v_overflow_toggle, PyObject *__pyx_v_wyt) {
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
double __pyx_v_existing_flow;
double __pyx_v_flood_available;
double __pyx_v_flood_available_overflow;
double __pyx_v_total_flood_deliveries;
double __pyx_v_total_excess_flow;
double __pyx_v_non_overflow_demand;
double __pyx_v_priority_flows;
double __pyx_v_flood_deliveries;
double __pyx_v_priority_flows_tot;
double __pyx_v_excess_flows;
double __pyx_v_total_spill;
int __pyx_v_canal_counter;
int __pyx_v_canal_counter2;
CYTHON_UNUSED int __pyx_v_xxx;
int __pyx_v_canal_size;
PyObject *__pyx_v_begin_key = 0;
CYTHON_UNUSED PyObject *__pyx_v_delivery_key = 0;
PyObject *__pyx_v_demand_type = 0;
PyObject *__pyx_v_canal_cap = 0;
PyObject *__pyx_v_type_list = 0;
PyObject *__pyx_v_tot_canal_demand = 0;
PyObject *__pyx_v_flood_demand = 0;
CYTHON_UNUSED PyObject *__pyx_v_unmet_demands = 0;
CYTHON_UNUSED Py_ssize_t __pyx_9genexpr37__pyx_v__;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("flood_operations", 0);
__Pyx_TraceCall("flood_operations", __pyx_f[0], 4353, 0, __PYX_ERR(0, 4353, __pyx_L1_error));
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_WriteUnraisable("calfews_src.model_cy.Model.flood_operations", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF(__pyx_v_begin_key);
__Pyx_XDECREF(__pyx_v_delivery_key);
__Pyx_XDECREF(__pyx_v_demand_type);
__Pyx_XDECREF(__pyx_v_canal_cap);
__Pyx_XDECREF(__pyx_v_type_list);
__Pyx_XDECREF(__pyx_v_tot_canal_demand);
__Pyx_XDECREF(__pyx_v_flood_demand);
__Pyx_XDECREF(__pyx_v_unmet_demands);
__Pyx_TraceReturn(Py_None, 0);
__Pyx_RefNannyFinishContext();
}
4354: ###available flood taken from reservoir step
4355: ###min-daily-uncontrolled is based on reservoir forecasts & available recharge space
4356: #releases from the flood pool, or in anticipation of the flood releases
4357: #'anticipation' releases are only made if they are at least as large as the
4358: #total recharge capacity at the reservoir
4359: cdef Canal canal_obj
4360: cdef double existing_flow, flood_available, flood_available_overflow, total_flood_deliveries, total_excess_flow, non_overflow_demand, \
4361: priority_flows, flood_deliveries, priority_flows_tot, excess_flows, total_spill
4362: cdef int canal_counter, canal_counter2, xxx, canal_size
4363: cdef str begin_key, delivery_key, demand_type
4364: cdef list canal_cap, type_list
4365: cdef dict tot_canal_demand, flood_demand, unmet_demands
4366:
+4367: if reservoir.key == "SLS" or reservoir.key == "SLF":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir->key, __pyx_n_u_SLS, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4367, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_reservoir->key, __pyx_n_u_SLF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4367, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+4368: begin_key = "SNL"
__Pyx_INCREF(__pyx_n_u_SNL);
__pyx_v_begin_key = __pyx_n_u_SNL;
4369: else:
+4370: begin_key = reservoir.key
/*else*/ {
__pyx_t_4 = __pyx_v_reservoir->key;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_begin_key = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
}
__pyx_L3:;
4371:
+4372: existing_flow = 0.0
__pyx_v_existing_flow = 0.0;
+4373: if max(reservoir.flood_flow_min, 2.0) > reservoir.min_daily_uncontrolled:
__pyx_t_5 = 2.0;
__pyx_t_6 = __pyx_v_reservoir->flood_flow_min;
if (((__pyx_t_5 > __pyx_t_6) != 0)) {
__pyx_t_7 = __pyx_t_5;
} else {
__pyx_t_7 = __pyx_t_6;
}
__pyx_t_1 = ((__pyx_t_7 > __pyx_v_reservoir->min_daily_uncontrolled) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
4374: #if reservoir.min_daily_uncontrolled < 3.0:
+4375: flood_available = reservoir.fcr
__pyx_t_7 = __pyx_v_reservoir->fcr;
__pyx_v_flood_available = __pyx_t_7;
+4376: flood_available_overflow = 0.0
__pyx_v_flood_available_overflow = 0.0;
4377: else:
+4378: for canal_obj in self.reservoir_canal[reservoir.key]:
/*else*/ {
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4378, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
__pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4378, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_8))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4378, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4378, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_10(__pyx_t_8);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4378, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4378, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4379: existing_flow += canal_obj.flow[1]
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_existing_flow); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_canal_obj->flow == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4379, __pyx_L1_error) } __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_canal_obj->flow, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4379, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_existing_flow = __pyx_t_7;
+4380: flood_available = max(reservoir.fcr, reservoir.min_daily_uncontrolled + max((reservoir.monthly_demand[wyt][m-1] + reservoir.monthly_demand_must_fill[wyt][m-1])/31.0 - existing_flow, 0.0)) #if reservoir.fcr < reservoir.flood_flow_min:
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_reservoir->min_daily_uncontrolled); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = 0.0; if (unlikely(__pyx_v_reservoir->monthly_demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4380, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_reservoir->monthly_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = (__pyx_v_m - 1); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_12, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_reservoir->monthly_demand_must_fill == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4380, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_reservoir->monthly_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = (__pyx_v_m - 1); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_12, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Add(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_12, __pyx_float_31_0, 31.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyFloat_FromDouble(__pyx_v_existing_flow); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyNumber_Subtract(__pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = PyObject_RichCompare(__pyx_t_4, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_1) { __pyx_t_14 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = __pyx_t_14; __pyx_t_14 = 0; } else { __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = __pyx_t_11; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Add(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_7 = __pyx_v_reservoir->fcr; __pyx_t_8 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = PyObject_RichCompare(__pyx_t_11, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = __pyx_t_11; } else { __pyx_t_14 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = __pyx_t_14; __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4380, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_flood_available = __pyx_t_7;
+4381: if reservoir.min_daily_overflow > 0.0:
__pyx_t_1 = ((__pyx_v_reservoir->min_daily_overflow > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L9;
}
+4382: flood_available_overflow = reservoir.min_daily_overflow + max((reservoir.monthly_demand_full[wyt][m-1] + reservoir.monthly_demand_must_fill[wyt][m-1])/31.0 - existing_flow, 0.0) #if reservoir.fcr < reservoir.flood_flow_min:
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_reservoir->min_daily_overflow); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = 0.0; if (unlikely(__pyx_v_reservoir->monthly_demand_full == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4382, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_reservoir->monthly_demand_full, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = (__pyx_v_m - 1); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_11, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(__pyx_v_reservoir->monthly_demand_must_fill == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4382, __pyx_L1_error) } __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_reservoir->monthly_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = (__pyx_v_m - 1); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_11, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Add(__pyx_t_14, __pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_11, __pyx_float_31_0, 31.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyFloat_FromDouble(__pyx_v_existing_flow); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_14 = PyNumber_Subtract(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_8 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(__pyx_t_14); __pyx_t_11 = __pyx_t_14; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Add(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_flood_available_overflow = __pyx_t_7;
4383: else:
+4384: flood_available_overflow = 0.0
/*else*/ {
__pyx_v_flood_available_overflow = 0.0;
}
__pyx_L9:;
}
__pyx_L6:;
4385:
4386:
+4387: if flood_available > 0.0:
__pyx_t_1 = ((__pyx_v_flood_available > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
+4388: delivery_key = reservoir.key + "_flood"
__pyx_t_14 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_reservoir->key, __pyx_n_u_flood); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_delivery_key = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
4389: #3 priority levels for flood flows
4390: #contractor - 1st priority, has contract at the reservoir being spilled
4391: #turnout - 2nd priority, has a turnout on a 'priority' canal for the reservoir being spilled
4392: #excess - 3rd priority, turnout on a non-priority canal for th ereservoir being spilled
+4393: flood_demand = {}
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_flood_demand = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
+4394: for demand_type in ['contractor', 'alternate', 'turnout', 'excess']:
__pyx_t_14 = __pyx_tuple__27; __Pyx_INCREF(__pyx_t_14); __pyx_t_9 = 0; for (;;) { if (__pyx_t_9 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4394, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_14, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif __Pyx_XDECREF_SET(__pyx_v_demand_type, ((PyObject*)__pyx_t_11)); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* … */ __pyx_tuple__27 = PyTuple_Pack(4, __pyx_n_u_contractor, __pyx_n_u_alternate, __pyx_n_u_turnout, __pyx_n_u_excess); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 4394, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27);
+4395: flood_demand[demand_type] = np.zeros(len(self.reservoir_canal[reservoir.key]))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4395, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyObject_Length(__pyx_t_12); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_12); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_v_demand_type, __pyx_t_11) < 0)) __PYX_ERR(0, 4395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4396: flood_demand['tot_' + demand_type] = 0.0
__pyx_t_11 = __Pyx_PyUnicode_ConcatSafe(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_11, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4396, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4397:
4398: ##Search for districts to take water
4399: ##Note: Millerton deliveries water to two seperate canals - their demands calculated seperately and split proportionally
+4400: canal_counter = 0
__pyx_v_canal_counter = 0;
+4401: for canal_obj in self.reservoir_canal[reservoir.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4401, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
__pyx_t_11 = __pyx_t_14; __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4401, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_11))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_14); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4401, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_14); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4401, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
}
} else {
__pyx_t_14 = __pyx_t_10(__pyx_t_11);
if (unlikely(!__pyx_t_14)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4401, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_14);
}
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4402: #total flood deliveries on each canal to each priority type
+4403: tot_canal_demand = self.search_canal_demand(dowy, canal_obj, begin_key, canal_obj.name, 'normal',flow_type,wateryear,'flood', {})
__pyx_t_14 = __pyx_v_canal_obj->name;
__Pyx_INCREF(__pyx_t_14);
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_12 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_v_dowy, __pyx_v_canal_obj, __pyx_v_begin_key, ((PyObject*)__pyx_t_14), __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_flood_2, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_tot_canal_demand, ((PyObject*)__pyx_t_12));
__pyx_t_12 = 0;
+4404: for demand_type in tot_canal_demand:
__pyx_t_15 = 0;
if (unlikely(__pyx_v_tot_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4404, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_dict_iterator(__pyx_v_tot_canal_demand, 1, ((PyObject *)NULL), (&__pyx_t_16), (&__pyx_t_17)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_12);
__pyx_t_12 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_12, __pyx_t_16, &__pyx_t_15, &__pyx_t_4, NULL, NULL, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_demand_type, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
4405: #sum priority deliveries over all canals
+4406: flood_demand[demand_type][canal_counter] = tot_canal_demand[demand_type]
if (unlikely(__pyx_v_tot_canal_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4406, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_tot_canal_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4406, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4406, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(__Pyx_SetItemInt(__pyx_t_14, __pyx_v_canal_counter, __pyx_t_4, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 4406, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4407: flood_demand['tot_' + demand_type] += flood_demand[demand_type][canal_counter]
__pyx_t_4 = __Pyx_PyUnicode_ConcatSafe(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_4, __pyx_t_8) < 0)) __PYX_ERR(0, 4407, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4408: canal_counter += 1
__pyx_v_canal_counter = (__pyx_v_canal_counter + 1);
+4409: canal_counter = 0
__pyx_v_canal_counter = 0;
+4410: total_flood_deliveries = 0.0
__pyx_v_total_flood_deliveries = 0.0;
+4411: total_excess_flow = 0.0
__pyx_v_total_excess_flow = 0.0;
+4412: canal_cap = [0.0 for _ in range(len(self.reservoir_canal[reservoir.key]))]
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4412, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = PyObject_Length(__pyx_t_12); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4412, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_16 = __pyx_t_9;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_16; __pyx_t_15+=1) {
__pyx_9genexpr37__pyx_v__ = __pyx_t_15;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 4412, __pyx_L1_error)
}
} /* exit inner scope */
__pyx_v_canal_cap = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+4413: canal_counter = 0
__pyx_v_canal_counter = 0;
+4414: non_overflow_demand = 0.0
__pyx_v_non_overflow_demand = 0.0;
+4415: for canal_obj in self.reservoir_canal[reservoir.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4415, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
__pyx_t_12 = __pyx_t_11; __Pyx_INCREF(__pyx_t_12); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_10 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4415, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_12))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4415, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_12, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4415, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_12, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
}
} else {
__pyx_t_11 = __pyx_t_10(__pyx_t_12);
if (unlikely(!__pyx_t_11)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4415, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_11);
}
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4415, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_11));
__pyx_t_11 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4416: canal_cap[canal_counter] = canal_obj.capacity['normal'][1]*cfs_tafd - canal_obj.flow[1]
if (unlikely(__pyx_v_canal_obj->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4416, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_canal_obj->capacity, __pyx_n_u_normal); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = __Pyx_GetItemInt(__pyx_t_11, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = PyNumber_Multiply(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__pyx_v_canal_obj->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4416, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_canal_obj->flow, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = PyNumber_Subtract(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_v_canal_cap, __pyx_v_canal_counter, __pyx_t_4, int, 1, __Pyx_PyInt_From_int, 1, 1, 1) < 0)) __PYX_ERR(0, 4416, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4417: non_overflow_demand += min(flood_demand['contractor'][canal_counter] + flood_demand['alternate'][canal_counter], canal_cap[canal_counter])
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_non_overflow_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_n_u_contractor); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_n_u_alternate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Add(__pyx_t_19, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_19 = PyObject_RichCompare(__pyx_t_11, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4417, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_11); __pyx_t_14 = __pyx_t_11; } else { __Pyx_INCREF(__pyx_t_8); __pyx_t_14 = __pyx_t_8; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_14); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_11); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_non_overflow_demand = __pyx_t_7;
+4418: canal_counter += 1
__pyx_v_canal_counter = (__pyx_v_canal_counter + 1);
+4419: if overflow_toggle == 1:
__pyx_t_1 = ((__pyx_v_overflow_toggle == 1) != 0);
if (__pyx_t_1) {
/* … */
}
+4420: flood_available = max(min(flood_available, non_overflow_demand), min(flood_available_overflow, flood_available))
__pyx_t_7 = __pyx_v_flood_available;
__pyx_t_5 = __pyx_v_flood_available_overflow;
if (((__pyx_t_7 < __pyx_t_5) != 0)) {
__pyx_t_6 = __pyx_t_7;
} else {
__pyx_t_6 = __pyx_t_5;
}
__pyx_t_7 = __pyx_t_6;
__pyx_t_6 = __pyx_v_non_overflow_demand;
__pyx_t_5 = __pyx_v_flood_available;
if (((__pyx_t_6 < __pyx_t_5) != 0)) {
__pyx_t_20 = __pyx_t_6;
} else {
__pyx_t_20 = __pyx_t_5;
}
__pyx_t_6 = __pyx_t_20;
if (((__pyx_t_7 > __pyx_t_6) != 0)) {
__pyx_t_20 = __pyx_t_7;
} else {
__pyx_t_20 = __pyx_t_6;
}
__pyx_v_flood_available = __pyx_t_20;
4421:
+4422: canal_counter = 0
__pyx_v_canal_counter = 0;
+4423: for canal_obj in self.reservoir_canal[reservoir.key]:
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4423, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
__pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4423, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_11))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_12); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4423, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_12); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4423, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
}
} else {
__pyx_t_12 = __pyx_t_10(__pyx_t_11);
if (unlikely(!__pyx_t_12)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4423, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_12);
}
if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4423, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_12));
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4424: #first, determine the % of total demand at each priority level that can be fufilled
4425: #second, sum up the total deliveries to each canal from the reservoir
+4426: priority_flows = 0.0
__pyx_v_priority_flows = 0.0;
+4427: flood_deliveries = 0.0
__pyx_v_flood_deliveries = 0.0;
+4428: priority_flows_tot = 0.0
__pyx_v_priority_flows_tot = 0.0;
+4429: if overflow_toggle == 1:
__pyx_t_1 = ((__pyx_v_overflow_toggle == 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L24;
}
+4430: type_list = ['contractor', 'alternate', 'turnout', 'excess']
__pyx_t_12 = PyList_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_n_u_contractor); __Pyx_GIVEREF(__pyx_n_u_contractor); PyList_SET_ITEM(__pyx_t_12, 0, __pyx_n_u_contractor); __Pyx_INCREF(__pyx_n_u_alternate); __Pyx_GIVEREF(__pyx_n_u_alternate); PyList_SET_ITEM(__pyx_t_12, 1, __pyx_n_u_alternate); __Pyx_INCREF(__pyx_n_u_turnout); __Pyx_GIVEREF(__pyx_n_u_turnout); PyList_SET_ITEM(__pyx_t_12, 2, __pyx_n_u_turnout); __Pyx_INCREF(__pyx_n_u_excess); __Pyx_GIVEREF(__pyx_n_u_excess); PyList_SET_ITEM(__pyx_t_12, 3, __pyx_n_u_excess); __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_12)); __pyx_t_12 = 0;
4431: else:
+4432: type_list = ['contractor', 'alternate']
/*else*/ {
__pyx_t_12 = PyList_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_n_u_contractor);
__Pyx_GIVEREF(__pyx_n_u_contractor);
PyList_SET_ITEM(__pyx_t_12, 0, __pyx_n_u_contractor);
__Pyx_INCREF(__pyx_n_u_alternate);
__Pyx_GIVEREF(__pyx_n_u_alternate);
PyList_SET_ITEM(__pyx_t_12, 1, __pyx_n_u_alternate);
__Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_12));
__pyx_t_12 = 0;
}
__pyx_L24:;
+4433: for demand_type in type_list:
__pyx_t_12 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_16 = 0; for (;;) { if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_12)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_14 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_14); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 4433, __pyx_L1_error) #else __pyx_t_14 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); #endif if (!(likely(PyUnicode_CheckExact(__pyx_t_14))||((__pyx_t_14) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_14)->tp_name), 0))) __PYX_ERR(0, 4433, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_demand_type, ((PyObject*)__pyx_t_14)); __pyx_t_14 = 0; /* … */ } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4434: if flood_demand['tot_' + demand_type] > 0.0:
__pyx_t_14 = __Pyx_PyUnicode_ConcatSafe(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L27; }
+4435: if (flood_demand[demand_type][canal_counter] + priority_flows) > canal_cap[canal_counter] and ((flood_available-priority_flows_tot)*(flood_demand[demand_type][canal_counter]/flood_demand['tot_' + demand_type])+priority_flows) > canal_cap[canal_counter]:
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_14, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L29_bool_binop_done; } __pyx_t_4 = PyFloat_FromDouble((__pyx_v_flood_available - __pyx_v_priority_flows_tot)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_14, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyUnicode_ConcatSafe(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_14); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_Multiply(__pyx_t_4, __pyx_t_14); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = PyNumber_Add(__pyx_t_19, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_19 = PyObject_RichCompare(__pyx_t_4, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_1 = __pyx_t_2; __pyx_L29_bool_binop_done:; if (__pyx_t_1) { /* … */ goto __pyx_L28; }
+4436: if flood_demand[demand_type][canal_counter] > 0.0:
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_19, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyObject_RichCompare(__pyx_t_14, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L31; }
+4437: flood_demand[demand_type + '_frac'] = min(max(canal_cap[canal_counter]-priority_flows, 0.0)/flood_demand[demand_type][canal_counter], 1.0)# the percent of demand that can be fufilled, adjusting for priority priority deliveries
__pyx_t_20 = 1.0;
__pyx_t_7 = 0.0;
__pyx_t_19 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_4 = PyNumber_Subtract(__pyx_t_19, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_19, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (__pyx_t_1) {
__pyx_t_8 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_14 = __pyx_t_4;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_14 = PyFloat_FromDouble(__pyx_t_20); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_14, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_1) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_20); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_8 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_8 = __pyx_t_4;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_8, __pyx_t_4) < 0)) __PYX_ERR(0, 4437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4438: else:
+4439: flood_demand[demand_type + '_frac'] = 0.0# the percent of demand that can be fufilled, adjusting for priority priority deliveries
/*else*/ {
__pyx_t_4 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4439, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_4, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4439, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_L31:;
4440:
+4441: flood_deliveries += flood_demand[demand_type + '_frac']*flood_demand[demand_type][canal_counter]
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_flood_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Multiply(__pyx_t_19, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4441, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_flood_deliveries = __pyx_t_20;
+4442: priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_8, __pyx_t_19, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4442, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_8); __pyx_t_4 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_19); __pyx_t_4 = __pyx_t_19; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_priority_flows = __pyx_t_20;
+4443: canal_counter2 = 0
__pyx_v_canal_counter2 = 0;
+4444: for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4444, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_15 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4444, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_22 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_22; __pyx_t_17+=1) {
__pyx_v_xxx = __pyx_t_17;
+4445: priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_priority_flows_tot); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_14, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_4, __pyx_t_19, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4445, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_4); __pyx_t_14 = __pyx_t_4; } else { __Pyx_INCREF(__pyx_t_19); __pyx_t_14 = __pyx_t_19; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_priority_flows_tot = __pyx_t_20;
+4446: canal_counter2 += 1
__pyx_v_canal_counter2 = (__pyx_v_canal_counter2 + 1);
}
4447: else:
+4448: flood_demand[demand_type + '_frac'] = min(max(flood_available - priority_flows_tot, 0.0)/flood_demand['tot_' + demand_type], 1.0)# the percent of demand that can be fufilled, adjusting for priority priority deliveries
/*else*/ {
__pyx_t_20 = 1.0;
__pyx_t_7 = 0.0;
__pyx_t_6 = (__pyx_v_flood_available - __pyx_v_priority_flows_tot);
if (((__pyx_t_7 > __pyx_t_6) != 0)) {
__pyx_t_5 = __pyx_t_7;
} else {
__pyx_t_5 = __pyx_t_6;
}
__pyx_t_4 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_14 = __Pyx_PyUnicode_ConcatSafe(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = PyFloat_FromDouble(__pyx_t_20); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_4, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_1) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_20); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_8 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_14);
__pyx_t_8 = __pyx_t_14;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __pyx_t_8;
__Pyx_INCREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_8, __pyx_t_14) < 0)) __PYX_ERR(0, 4448, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4449: priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_19, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4449, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_8); __pyx_t_19 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_4); __pyx_t_19 = __pyx_t_4; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_priority_flows = __pyx_t_20;
+4450: flood_deliveries += flood_demand[demand_type + '_frac'] * flood_demand[demand_type][canal_counter]
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_flood_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_19); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_19, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_Multiply(__pyx_t_14, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4450, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_flood_deliveries = __pyx_t_20;
4451:
+4452: canal_counter2 = 0
__pyx_v_canal_counter2 = 0;
+4453: for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4453, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_15 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4453, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_22 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_22; __pyx_t_17+=1) {
__pyx_v_xxx = __pyx_t_17;
+4454: priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_priority_flows_tot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_19 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_19, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4454, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_19); __pyx_t_8 = __pyx_t_19; } else { __Pyx_INCREF(__pyx_t_14); __pyx_t_8 = __pyx_t_14; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4454, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_v_priority_flows_tot = __pyx_t_20;
+4455: canal_counter2 += 1
__pyx_v_canal_counter2 = (__pyx_v_canal_counter2 + 1);
}
}
__pyx_L28:;
4456: else:
+4457: flood_demand[demand_type + '_frac'] = 0.0
/*else*/ {
__pyx_t_19 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4457, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_19, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4457, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4458: priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
__pyx_t_19 = PyFloat_FromDouble(__pyx_v_priority_flows); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_8, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4458, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_8); __pyx_t_4 = __pyx_t_8; } else { __Pyx_INCREF(__pyx_t_14); __pyx_t_4 = __pyx_t_14; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_priority_flows = __pyx_t_20;
+4459: flood_deliveries += flood_demand[demand_type + '_frac'] * flood_demand[demand_type][canal_counter]
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_flood_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_canal_counter, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_19, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4459, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_flood_deliveries = __pyx_t_20;
+4460: canal_counter2 = 0
__pyx_v_canal_counter2 = 0;
+4461: for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
if (unlikely(__pyx_v_self->reservoir_canal == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4461, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_self->reservoir_canal, __pyx_v_reservoir->key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyObject_Length(__pyx_t_14); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4461, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_22 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_22; __pyx_t_17+=1) {
__pyx_v_xxx = __pyx_t_17;
+4462: priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_priority_flows_tot); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_canal_cap, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_canal_counter2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_21 = PyObject_RichCompare(__pyx_t_4, __pyx_t_19, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4462, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = __pyx_t_4; } else { __Pyx_INCREF(__pyx_t_19); __pyx_t_8 = __pyx_t_19; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_priority_flows_tot = __pyx_t_20;
+4463: canal_counter2 += 1
__pyx_v_canal_counter2 = (__pyx_v_canal_counter2 + 1);
}
}
__pyx_L27:;
4464:
+4465: canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4465, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4465, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_v_canal_size = __pyx_t_17;
+4466: if flood_deliveries > 0.0:
__pyx_t_1 = ((__pyx_v_flood_deliveries > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L38;
}
+4467: excess_flows, unmet_demands = self.distribute_canal_deliveries(dowy, canal_obj, begin_key, canal_obj.name, flood_deliveries, canal_size, wateryear, 'normal', flow_type, 'flood')
__pyx_t_12 = __pyx_v_canal_obj->name;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_4 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_v_dowy, __pyx_v_canal_obj, __pyx_v_begin_key, ((PyObject*)__pyx_t_12), __pyx_v_flood_deliveries, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_flood_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (likely(__pyx_t_4 != Py_None)) {
PyObject* sequence = __pyx_t_4;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4467, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_8 = PyTuple_GET_ITEM(sequence, 1);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(__pyx_t_8);
#else
__pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 4467, __pyx_L1_error)
}
__pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4467, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 4467, __pyx_L1_error)
__pyx_v_excess_flows = __pyx_t_20;
__Pyx_XDECREF_SET(__pyx_v_unmet_demands, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
4468:
4469: else:
+4470: excess_flows = 0.0
/*else*/ {
__pyx_v_excess_flows = 0.0;
}
__pyx_L38:;
+4471: canal_counter += 1
__pyx_v_canal_counter = (__pyx_v_canal_counter + 1);
+4472: total_flood_deliveries += flood_deliveries
__pyx_v_total_flood_deliveries = (__pyx_v_total_flood_deliveries + __pyx_v_flood_deliveries);
+4473: total_excess_flow += excess_flows
__pyx_v_total_excess_flow = (__pyx_v_total_excess_flow + __pyx_v_excess_flows);
4474: #if all deliveries cannot be taken, then only need to 'spill' from the
4475: #reservoir what was actually delivered (unless over the flood pool - then spill into channel (not tracked)
+4476: total_spill = max(total_flood_deliveries - total_excess_flow, reservoir.fcr)
__pyx_t_20 = __pyx_v_reservoir->fcr;
__pyx_t_5 = (__pyx_v_total_flood_deliveries - __pyx_v_total_excess_flow);
if (((__pyx_t_20 > __pyx_t_5) != 0)) {
__pyx_t_7 = __pyx_t_20;
} else {
__pyx_t_7 = __pyx_t_5;
}
__pyx_v_total_spill = __pyx_t_7;
+4477: reservoir.flood_spill[t] += total_spill - total_flood_deliveries + total_excess_flow
if (unlikely(__pyx_v_reservoir->flood_spill == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4477, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir->flood_spill);
__pyx_t_23 = __pyx_v_reservoir->flood_spill;
__pyx_t_17 = __pyx_v_t;
if (unlikely(__pyx_t_23 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4477, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_GetItemInt_List(__pyx_t_23, __pyx_t_17, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = PyFloat_FromDouble(((__pyx_v_total_spill - __pyx_v_total_flood_deliveries) + __pyx_v_total_excess_flow)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_t_23 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4477, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_23, __pyx_t_17, __pyx_t_8, int, 1, __Pyx_PyInt_From_int, 1, 1, 1) < 0)) __PYX_ERR(0, 4477, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+4478: reservoir.flood_deliveries[t] = total_flood_deliveries - total_excess_flow
__pyx_t_8 = PyFloat_FromDouble((__pyx_v_total_flood_deliveries - __pyx_v_total_excess_flow)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_reservoir->flood_deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4478, __pyx_L1_error) } if (unlikely(__Pyx_SetItemInt(__pyx_v_reservoir->flood_deliveries, __pyx_v_t, __pyx_t_8, int, 1, __Pyx_PyInt_From_int, 1, 1, 1) < 0)) __PYX_ERR(0, 4478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
4479:
4480: #if water is spilled, it has to be taken from existing carryover or from estimates
4481: #of that year's contract (b/c flood releases do not count as contract deliveries, but that
4482: #water is still used to estimate water availability for contract allocations)
+4483: self.update_carryover(total_spill,reservoir.key,wateryear)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_carryover); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyFloat_FromDouble(__pyx_v_total_spill); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_t_11, __pyx_v_reservoir->key, __pyx_t_12}; __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 3+__pyx_t_17); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_t_11, __pyx_v_reservoir->key, __pyx_t_12}; __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 3+__pyx_t_17); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_19 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_17, __pyx_t_11); __Pyx_INCREF(__pyx_v_reservoir->key); __Pyx_GIVEREF(__pyx_v_reservoir->key); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_17, __pyx_v_reservoir->key); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_17, __pyx_t_12); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
4484: #update storage (reservoir.fcr: flood control releases, already accounted for in reservoir water balance)
+4485: if t < (self.T -1):
__pyx_t_1 = ((__pyx_v_t < (__pyx_v_self->T - 1)) != 0);
if (__pyx_t_1) {
/* … */
}
+4486: reservoir.S[t+1] -= (total_spill - reservoir.fcr)
if (unlikely(__pyx_v_reservoir->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4486, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_reservoir->S);
__pyx_t_23 = __pyx_v_reservoir->S;
__pyx_t_13 = (__pyx_v_t + 1);
if (unlikely(__pyx_t_23 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4486, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_t_23, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_total_spill - __pyx_v_reservoir->fcr)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_19 = PyNumber_InPlaceSubtract(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_t_23 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4486, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_23, __pyx_t_13, __pyx_t_19, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(0, 4486, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
4487:
4488: #####################################################################################################################
4489: #####################################################################################################################
4490: #####################################################################################################################
4491:
4492:
4493: #####################################################################################################################
4494: ###### Canal loop with capacity constraints - find demand & deliver flood/contract/recharge/recovery water #########
4495: #####################################################################################################################
4496:
+4497: def set_canal_direction(self, flow_type):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_79set_canal_direction(PyObject *__pyx_v_self, PyObject *__pyx_v_flow_type); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_79set_canal_direction(PyObject *__pyx_v_self, PyObject *__pyx_v_flow_type) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_canal_direction (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_78set_canal_direction(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), ((PyObject *)__pyx_v_flow_type));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_78set_canal_direction(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_flow_type) {
long __pyx_v_adjust_both_types;
long __pyx_v_adjust_one_type;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_canal_direction", 0);
__Pyx_TraceCall("set_canal_direction", __pyx_f[0], 4497, 0, __PYX_ERR(0, 4497, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_canal_direction", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4498: ##This function determines the flow direction on the cross valley canal based on the use of the turnouts w/ the
4499: ##California Aqueduct, Friant-Kern Canal, and/or Kern River.
+4500: adjust_both_types = 1
__pyx_v_adjust_both_types = 1;
+4501: adjust_one_type = 0
__pyx_v_adjust_one_type = 0;
+4502: if flow_type == "recharge":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recharge, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4502, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+4503: self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[18], "normal", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->calaqueduct), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4503, __pyx_L1_error) } __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 18, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->xvc->locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_normal); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_n_u_normal); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4504: #self.fkc.find_bi_directional(self.calaqueduct.turnout_use[15], "normal", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
+4505: if self.calaqueduct.turnout_use[18] > 0.0:
if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4505, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 18, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4505, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4505, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_1) {
/* … */
}
+4506: self.xvc.locked = 1
__pyx_v_self->xvc->locked = 1;
4507: #if self.kwbcanal.capacity["reverse"][2] > 0.0:
4508: #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc')
4509: #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc')
4510: #else:
4511: #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
4512: #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "reverse", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
4513: #if self.fkc.turnout_use[22] > 0.0:
4514: #self.xvc.locked = 1
4515:
+4516: self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[19], "normal", "normal", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->calaqueduct), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4516, __pyx_L1_error) } __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->kwbcanal->locked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_5}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_5}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_n_u_normal); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_n_u_normal); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4517: self.kerncanal.find_bi_directional(self.calaqueduct.turnout_use[19], "closed", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->kerncanal), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4517, __pyx_L1_error) } __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->kwbcanal->locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_closed, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_5, __pyx_t_6}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_closed, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_5, __pyx_t_6}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_4 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_n_u_closed); __Pyx_GIVEREF(__pyx_n_u_closed); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_n_u_closed); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_8, __pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4518: if self.calaqueduct.turnout_use[19] > 0.0:
if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4518, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4518, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4518, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4518, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_1) {
/* … */
}
+4519: self.kwbcanal.locked = 1
__pyx_v_self->kwbcanal->locked = 1;
4520:
4521: #self.calaqueduct.find_bi_directional(self.kerncanal.turnout_use[5], "reverse", "normal", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
4522: #self.kerncanal.find_bi_directional(self.kerncanal.turnout_use[5], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
4523: #if self.kerncanal.turnout_use[5] > 0.0:
4524: #self.kwbcanal.locked = 1
4525:
+4526: elif flow_type == "recovery":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4526, __pyx_L1_error) if (__pyx_t_1) { /* … */ } __pyx_L3:;
+4527: self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[18], "reverse", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->calaqueduct), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4527, __pyx_L1_error) } __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 18, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->xvc->locked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_6, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_6, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4528: #self.fkc.find_bi_directional(self.calaqueduct.turnout_use[15], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
+4529: self.kernriverchannel.find_bi_directional(self.calaqueduct.turnout_use[18], "reverse", "reverse", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->kernriverchannel), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4529, __pyx_L1_error) } __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 18, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_one_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->xvc->locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_t_6); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4530: if self.calaqueduct.turnout_use[18] > 0.0:
if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4530, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 18, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4530, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4530, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_1) {
/* … */
}
+4531: self.xvc.locked = 1
__pyx_v_self->xvc->locked = 1;
4532:
4533: #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "normal", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
4534: #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
4535: #self.kernriverchannel.find_bi_directional(self.fkc.turnout_use[22], "normal", "reverse", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
4536: #if self.fkc.turnout_use[22] > 0.0:
4537: #self.xvc.locked = 1
4538:
+4539: self.calaqueduct.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "reverse", flow_type, adjust_both_types, 'xvc', self.xvc.locked)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->calaqueduct), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kernriverchannel->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4539, __pyx_L1_error) } __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_self->kernriverchannel->turnout_use, 4, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->xvc->locked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_t_6, __pyx_n_u_xvc, __pyx_t_5}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_t_6, __pyx_n_u_xvc, __pyx_t_5}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_4 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_8, __pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_8, __pyx_t_5); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4540: #self.fkc.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
+4541: self.kernriverchannel.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "normal", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->kernriverchannel), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->kernriverchannel->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4541, __pyx_L1_error) } __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_self->kernriverchannel->turnout_use, 4, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_one_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->xvc->locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_normal); __Pyx_GIVEREF(__pyx_n_u_normal); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_n_u_normal); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_n_u_xvc); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_n_u_xvc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4542: if self.kernriverchannel.turnout_use[4] > 0.0:
if (unlikely(__pyx_v_self->kernriverchannel->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4542, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->kernriverchannel->turnout_use, 4, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_1) {
/* … */
}
+4543: self.xvc.locked = 1
__pyx_v_self->xvc->locked = 1;
4544:
4545:
+4546: self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[19], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->calaqueduct), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4546, __pyx_L1_error) } __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->kwbcanal->locked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4547: self.kerncanal.find_bi_directional(self.calaqueduct.turnout_use[19], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->kerncanal), __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4547, __pyx_L1_error) } __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->kwbcanal->locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_5, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_4 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_n_u_reverse); __Pyx_GIVEREF(__pyx_n_u_reverse); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_n_u_reverse); __Pyx_INCREF(__pyx_v_flow_type); __Pyx_GIVEREF(__pyx_v_flow_type); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_8, __pyx_v_flow_type); __Pyx_INCREF(__pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_n_u_kbc); PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_8, __pyx_n_u_kbc); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4548: if self.calaqueduct.turnout_use[19] > 0.0:
if (unlikely(__pyx_v_self->calaqueduct->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4548, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_self->calaqueduct->turnout_use, 19, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_1) {
/* … */
}
+4549: self.kwbcanal.locked = 1
__pyx_v_self->kwbcanal->locked = 1;
4550:
4551: #self.calaqueduct.find_bi_directional(self.kerncanal.turnout_use[4], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
4552: #self.kerncanal.find_bi_directional(self.kerncanal.turnout_use[4], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
4553: #if self.kerncanal.turnout_use[5] > 0.0:
4554: #self.kwbcanal.locked = 1
4555:
4556:
+4557: def set_canal_range(self, flow_dir, flow_type, Canal canal, prev_canal, canal_size):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_81set_canal_range(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_81set_canal_range(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_flow_dir = 0;
PyObject *__pyx_v_flow_type = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal = 0;
PyObject *__pyx_v_prev_canal = 0;
PyObject *__pyx_v_canal_size = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_canal_range (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_canal_size,0};
PyObject* values[5] = {0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 5, 5, 1); __PYX_ERR(0, 4557, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 5, 5, 2); __PYX_ERR(0, 4557, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 5, 5, 3); __PYX_ERR(0, 4557, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 5, 5, 4); __PYX_ERR(0, 4557, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_canal_range") < 0)) __PYX_ERR(0, 4557, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
}
__pyx_v_flow_dir = values[0];
__pyx_v_flow_type = values[1];
__pyx_v_canal = ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)values[2]);
__pyx_v_prev_canal = values[3];
__pyx_v_canal_size = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4557, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_canal_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_canal), __pyx_ptype_11calfews_src_8canal_cy_Canal, 1, "canal", 0))) __PYX_ERR(0, 4557, __pyx_L1_error)
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_80set_canal_range(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_canal_size);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_80set_canal_range(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_canal_size) {
PyObject *__pyx_v_total_canal = NULL;
PyObject *__pyx_v_starting_point = NULL;
PyObject *__pyx_v_canal_range = NULL;
Py_ssize_t __pyx_v_ending_point;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_canal_range", 0);
__Pyx_TraceCall("set_canal_range", __pyx_f[0], 4557, 0, __PYX_ERR(0, 4557, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_canal_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_total_canal);
__Pyx_XDECREF(__pyx_v_starting_point);
__Pyx_XDECREF(__pyx_v_canal_range);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
4558: #this function searches through the self.canal_district dictionary to find the
4559: #node index range for any canal, given the flow direction on the canal and the
4560: #previous or connecting canal (i.e., where the water is coming from). If this is
4561: #the first canal in a search series (and the water is coming from a reservoir), this
4562: #function will identify that reservoir as the starting point and find the node index range
4563: #for a canal starting at the reservoir
4564: #EXAMPLE - if flow is coming from the friant-kern canal, and flowing in 'reverse' direction
4565: #onto the cross valley canal, this function will identify the 'starting point' on the XVC
4566: #as node #9 (index starts at zero) and the 'range' of flow as nodes #8-#0 (at which point the
4567: #search will continue onto the california aqueduct
4568:
+4569: total_canal = self.canal_district_len[canal.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4569, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4569, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_total_canal = __pyx_t_1;
__pyx_t_1 = 0;
4570: #recharge flows move down the canals starting from the reservoirs
+4571: if flow_type == "recharge":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recharge, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4571, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+4572: for starting_point in range(len(self.canal_district[canal.name])):
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4572, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
__pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
__pyx_t_5 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4572, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
for (;;) {
if (likely(!__pyx_t_5)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4572, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4572, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_5(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4572, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__pyx_L5_break:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4573: if self.canal_district[canal.name][starting_point].key == prev_canal:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4573, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_starting_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
/* … */
}
+4574: break
goto __pyx_L5_break;
+4575: if flow_dir == "normal":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4575, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L7; }
+4576: starting_point += 1
if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4576, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_starting_point, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_1);
__pyx_t_1 = 0;
+4577: canal_range = range(starting_point,canal_size)
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_starting_point); __Pyx_GIVEREF(__pyx_v_starting_point); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_starting_point); __Pyx_INCREF(__pyx_v_canal_size); __Pyx_GIVEREF(__pyx_v_canal_size); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_canal_size); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_canal_range = __pyx_t_6; __pyx_t_6 = 0;
+4578: elif flow_dir == "reverse":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4578, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L7; }
+4579: starting_point -= 1
if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4579, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_v_starting_point, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4579, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_6);
__pyx_t_6 = 0;
+4580: canal_range = range(starting_point,total_canal - canal_size,-1)
__pyx_t_6 = PyNumber_Subtract(__pyx_v_total_canal, __pyx_v_canal_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_starting_point); __Pyx_GIVEREF(__pyx_v_starting_point); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_starting_point); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_int_neg_1); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_canal_range = __pyx_t_6; __pyx_t_6 = 0;
4581: else:
+4582: return (range(0, 0), 0.0)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
__pyx_t_6 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
__pyx_L7:;
/* … */
__pyx_tuple__28 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__28);
__Pyx_GIVEREF(__pyx_tuple__28);
4583:
+4584: elif flow_type == "recovery":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4584, __pyx_L1_error) if (__pyx_t_2) { /* … */ } __pyx_L3:;
+4585: if flow_dir == "normal":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4585, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L8; }
+4586: if self.canal_district[canal.name][0].is_Reservoir:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4586, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_Reservoir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4586, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L9;
}
+4587: starting_point = 1
__Pyx_INCREF(__pyx_int_1);
__pyx_v_starting_point = __pyx_int_1;
4588: else:
+4589: starting_point = 0
/*else*/ {
__Pyx_INCREF(__pyx_int_0);
__pyx_v_starting_point = __pyx_int_0;
}
__pyx_L9:;
+4590: if prev_canal == "none":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_prev_canal, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4590, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L10; }
+4591: canal_range = range(starting_point, canal_size)
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_starting_point); __Pyx_GIVEREF(__pyx_v_starting_point); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_starting_point); __Pyx_INCREF(__pyx_v_canal_size); __Pyx_GIVEREF(__pyx_v_canal_size); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_canal_size); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_canal_range = __pyx_t_6; __pyx_t_6 = 0;
4592: else:
+4593: for ending_point in range(len(self.canal_district[canal.name])):
/*else*/ {
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4593, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4593, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4593, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = __pyx_t_3;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_ending_point = __pyx_t_8;
+4594: if self.canal_district[canal.name][ending_point].key == prev_canal:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4594, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4594, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_ending_point, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4594, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4594, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4594, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4594, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
/* … */
}
}
__pyx_L12_break:;
+4595: break
goto __pyx_L12_break;
+4596: if ending_point == 0:
__pyx_t_2 = ((__pyx_v_ending_point == 0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L14;
}
+4597: if canal.recovery_feeder:
__pyx_t_2 = (__pyx_v_canal->recovery_feeder != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L15;
}
+4598: canal_range = (0, 0)
__Pyx_INCREF(__pyx_tuple__28);
__pyx_v_canal_range = __pyx_tuple__28;
4599: else:
+4600: canal_range = range(starting_point, self.canal_district_len[canal.name])
/*else*/ {
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4600, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_v_starting_point);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_canal_range = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L15:;
4601: else:
4602: #ending_point -= 1
+4603: canal_range = range(starting_point, ending_point)
/*else*/ {
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_ending_point); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_v_starting_point);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_canal_range = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L14:;
}
__pyx_L10:;
+4604: elif flow_dir == "reverse":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4604, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L8; }
+4605: starting_point = self.canal_district_len[canal.name] - 1
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4605, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_starting_point = __pyx_t_6;
__pyx_t_6 = 0;
+4606: if prev_canal == "none":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_prev_canal, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4606, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L16; }
+4607: canal_range = range(starting_point, -1, -1)
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_starting_point); __Pyx_GIVEREF(__pyx_v_starting_point); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_starting_point); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_neg_1); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_int_neg_1); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_canal_range = __pyx_t_1; __pyx_t_1 = 0;
4608: else:
+4609: for ending_point in range(len(self.canal_district[canal.name])):
/*else*/ {
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4609, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = __pyx_t_3;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_ending_point = __pyx_t_8;
+4610: if self.canal_district[canal.name][ending_point].key == prev_canal:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4610, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_ending_point, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4610, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4610, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
/* … */
}
}
__pyx_L18_break:;
+4611: break
goto __pyx_L18_break;
+4612: if ending_point == (self.canal_district_len[canal.name] - 1):
__pyx_t_6 = PyInt_FromSsize_t(__pyx_v_ending_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_self->canal_district_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4612, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4612, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4612, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L20; }
+4613: if canal.recovery_feeder:
__pyx_t_2 = (__pyx_v_canal->recovery_feeder != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L21;
}
+4614: canal_range = (0,0)
__Pyx_INCREF(__pyx_tuple__28);
__pyx_v_canal_range = __pyx_tuple__28;
4615: else:
+4616: canal_range = range(starting_point, 0, -1)
/*else*/ {
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_v_starting_point);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_starting_point);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
__Pyx_INCREF(__pyx_int_neg_1);
__Pyx_GIVEREF(__pyx_int_neg_1);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_int_neg_1);
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_canal_range = __pyx_t_4;
__pyx_t_4 = 0;
}
__pyx_L21:;
4617: else:
4618: #ending_point += 1
+4619: canal_range = range(starting_point, ending_point, -1)
/*else*/ {
__pyx_t_4 = PyInt_FromSsize_t(__pyx_v_ending_point); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_v_starting_point);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_starting_point);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
__Pyx_INCREF(__pyx_int_neg_1);
__Pyx_GIVEREF(__pyx_int_neg_1);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_int_neg_1);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_canal_range = __pyx_t_4;
__pyx_t_4 = 0;
}
__pyx_L20:;
}
__pyx_L16:;
4620: else:
+4621: return(range(0, 0), 0.0)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4621, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4621, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
__pyx_t_4 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
__pyx_L8:;
+4622: return canal_range, starting_point
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_canal_range)) { __Pyx_RaiseUnboundLocalError("canal_range"); __PYX_ERR(0, 4622, __pyx_L1_error) } if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4622, __pyx_L1_error) } __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_canal_range); __Pyx_GIVEREF(__pyx_v_canal_range); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_canal_range); __Pyx_INCREF(__pyx_v_starting_point); __Pyx_GIVEREF(__pyx_v_starting_point); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_starting_point); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
4623:
4624:
+4625: cdef tuple distribute_canal_deliveries(self, int dowy, Canal canal, str prev_canal, str contract_canal, double available_flow, int canal_size, int wateryear, str flow_dir, str flow_type, str search_type):
static PyObject *__pyx_f_11calfews_src_8model_cy_5Model_distribute_canal_deliveries(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, int __pyx_v_dowy, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, double __pyx_v_available_flow, int __pyx_v_canal_size, int __pyx_v_wateryear, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, PyObject *__pyx_v_search_type) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *__pyx_cur_scope;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj2 = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
double __pyx_v_private_demand_constraint;
double __pyx_v_demand_constraint;
double __pyx_v_excess_flow;
CYTHON_UNUSED double __pyx_v_unmet_demand;
double __pyx_v_total_demand;
double __pyx_v_turnback_flow;
double __pyx_v_excess_flow_int;
double __pyx_v_available_capacity_int;
double __pyx_v_location_delivery;
double __pyx_v_current_storage;
double __pyx_v_deliveries;
double __pyx_v_priority_bank_space;
double __pyx_v_actual_deliveries;
double __pyx_v_direct_deliveries;
double __pyx_v_recharge_deliveries;
double __pyx_v_undelivered;
double __pyx_v_private_delivery_constraint;
double __pyx_v_delivery_to_private;
double __pyx_v_turnout_available;
double __pyx_v_new_excess_flow;
double __pyx_v_remaining_excess_flow;
int __pyx_v_toggle_partial_delivery;
int __pyx_v_toggle_district_recharge;
int __pyx_v_starting_point;
int __pyx_v_canal_loc;
int __pyx_v_num_members;
int __pyx_v_new_canal_size;
int __pyx_v_turnback_end;
int __pyx_v_toggle_demand_count;
int __pyx_v_canal_loc_int;
PyObject *__pyx_v_list_member = 0;
PyObject *__pyx_v_district_key = 0;
PyObject *__pyx_v_participant_key = 0;
PyObject *__pyx_v_district2_key = 0;
PyObject *__pyx_v_contract_key = 0;
PyObject *__pyx_v_type_list = 0;
PyObject *__pyx_v_priority_list = 0;
PyObject *__pyx_v_contract_list = 0;
PyObject *__pyx_v_empty_demands = 0;
PyObject *__pyx_v_type_deliveries = 0;
PyObject *__pyx_v_type_demands = 0;
PyObject *__pyx_v_type_fractions = 0;
PyObject *__pyx_v_canal_fractions = 0;
PyObject *__pyx_v_priorities = 0;
PyObject *__pyx_v_priority_turnout_adjusted = 0;
PyObject *__pyx_v_delivery_by_contract = 0;
PyObject *__pyx_v_private_deliveries = 0;
PyObject *__pyx_v_canal_demands = 0;
CYTHON_UNUSED PyObject *__pyx_v_unmet_canal_demands = 0;
PyObject *__pyx_v_unmet_demands = 0;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_city_deliveries = NULL;
PyObject *__pyx_v_new_flow_dir = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("distribute_canal_deliveries", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4625, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__Pyx_TraceCall("distribute_canal_deliveries", __pyx_f[0], 4625, 0, __PYX_ERR(0, 4625, __pyx_L1_error));
__pyx_cur_scope->__pyx_v_canal = __pyx_v_canal;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_canal);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_canal);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("calfews_src.model_cy.Model.distribute_canal_deliveries", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF(__pyx_v_list_member);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_district2_key);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XDECREF(__pyx_v_type_list);
__Pyx_XDECREF(__pyx_v_priority_list);
__Pyx_XDECREF(__pyx_v_contract_list);
__Pyx_XDECREF(__pyx_v_empty_demands);
__Pyx_XDECREF(__pyx_v_type_deliveries);
__Pyx_XDECREF(__pyx_v_type_demands);
__Pyx_XDECREF(__pyx_v_type_fractions);
__Pyx_XDECREF(__pyx_v_canal_fractions);
__Pyx_XDECREF(__pyx_v_priorities);
__Pyx_XDECREF(__pyx_v_priority_turnout_adjusted);
__Pyx_XDECREF(__pyx_v_delivery_by_contract);
__Pyx_XDECREF(__pyx_v_private_deliveries);
__Pyx_XDECREF(__pyx_v_canal_demands);
__Pyx_XDECREF(__pyx_v_unmet_canal_demands);
__Pyx_XDECREF(__pyx_v_unmet_demands);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_city_deliveries);
__Pyx_XDECREF(__pyx_v_new_flow_dir);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal;
PyObject *__pyx_v_canal_range;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj;
PyObject *__pyx_v_zz;
};
4626: cdef District district_obj, district_obj2
4627: cdef Private private_obj
4628: cdef Waterbank waterbank_obj
4629: cdef Canal canal_obj
4630: cdef double private_demand_constraint, demand_constraint, excess_flow, unmet_demand, total_demand, turnback_flow, excess_flow_int, available_capacity_int, \
4631: location_delivery, current_storage, deliveries, priority_bank_space, actual_deliveries, direct_deliveries, recharge_deliveries, undelivered, \
4632: private_delivery_constraint, delivery_to_private, turnout_available, new_excess_flow, remaining_excess_flow
4633: cdef int toggle_partial_delivery, toggle_district_recharge, starting_point, canal_loc, num_members, new_canal_size, turnback_end, toggle_demand_count, \
4634: canal_loc_int
4635: cdef str list_member, zz, district_key, participant_key, district2_key, contract_key
4636: cdef list type_list, priority_list, contract_list
4637: cdef dict empty_demands, type_deliveries, type_demands, type_fractions, canal_fractions, priorities, priority_turnout_adjusted, delivery_by_contract, \
4638: private_deliveries, canal_demands, unmet_canal_demands, unmet_demands
4639:
+4640: if search_type == 'delivery':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_delivery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4640, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L3; }
4641: #for regular deliveries, we need to distinguish between demands from each contract
4642: #because the distribute_canal_deliveries and search_canal_demands functions are called
4643: #one reservoir at a time, there are only multiple 'types' of demand when there are more
4644: #than one type of contract at a reservoir
4645: #NOTE: as it is currently written, this implies some sort of contract 'priority' structure
4646: #when there are more than one type of contract at a reservoir. Not sure if this is a valid assumption
4647: #or if it makes a big deal - b/c this is only for direct irrigation deliveries, and not flood/recharge water,
4648: #it might not be a big deal
+4649: type_list = [contract_canal]
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_contract_canal); __pyx_v_type_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
4650: # print(contract_canal, type_list)
+4651: toggle_partial_delivery = 1
__pyx_v_toggle_partial_delivery = 1;
+4652: toggle_district_recharge = 0
__pyx_v_toggle_district_recharge = 0;
+4653: elif search_type == 'flood':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_flood_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4653, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L3; }
4654: #for flood flows, need to distinguish between districts with a contract
4655: #to the water being spilled (1st priority), districts with a turnout on
4656: #a 'favored' canal (i.e, one that won't disrupt flows from other sources,
4657: #2nd priority), and districts with turnouts on other canals that can still
4658: #be technically reached from this source (3rd priority)
+4659: type_list = ['contractor', 'alternate', 'turnout', 'excess']
__pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_contractor); __Pyx_GIVEREF(__pyx_n_u_contractor); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_contractor); __Pyx_INCREF(__pyx_n_u_alternate); __Pyx_GIVEREF(__pyx_n_u_alternate); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_alternate); __Pyx_INCREF(__pyx_n_u_turnout); __Pyx_GIVEREF(__pyx_n_u_turnout); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_turnout); __Pyx_INCREF(__pyx_n_u_excess); __Pyx_GIVEREF(__pyx_n_u_excess); PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_excess); __pyx_v_type_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+4660: toggle_partial_delivery = 0
__pyx_v_toggle_partial_delivery = 0;
+4661: toggle_district_recharge = 1
__pyx_v_toggle_district_recharge = 1;
+4662: elif search_type == 'banking':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4662, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ } __pyx_L3:;
4663: #banking flows need to distinguish between priority space in recharge facilities (i.e., the percentage of the facility
4664: #'owned' by a particular district, and secondary space, which can be used by individual districts if they are not in use
4665: # by the 'owner'
+4666: type_list = ['priority', 'secondary']
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_priority); __Pyx_GIVEREF(__pyx_n_u_priority); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_priority); __Pyx_INCREF(__pyx_n_u_secondary); __Pyx_GIVEREF(__pyx_n_u_secondary); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_secondary); __pyx_v_type_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+4667: toggle_partial_delivery = 0
__pyx_v_toggle_partial_delivery = 0;
+4668: toggle_district_recharge = 1
__pyx_v_toggle_district_recharge = 1;
4669:
4670: #find the range of nodes to 'search' on this canal
+4671: if flow_dir == "closed":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_closed, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4671, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+4672: empty_demands = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_empty_demands = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+4673: for list_member in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4673, __pyx_L1_error) }
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4673, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4673, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 4673, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_list_member, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4674: empty_demands[list_member] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_empty_demands, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4674, __pyx_L1_error)
+4675: return available_flow, empty_demands
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_INCREF(__pyx_v_empty_demands); __Pyx_GIVEREF(__pyx_v_empty_demands); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_empty_demands); __pyx_t_3 = 0; __pyx_r = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0;
4676: else:
+4677: canal_range, starting_point = self.set_canal_range(flow_dir, flow_type, canal, prev_canal, canal_size)
/*else*/ {
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_flow_dir, __pyx_v_flow_type, ((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_v_prev_canal, __pyx_t_6};
__pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_flow_dir, __pyx_v_flow_type, ((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_v_prev_canal, __pyx_t_6};
__pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
{
__pyx_t_9 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__pyx_t_7) {
__Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
}
__Pyx_INCREF(__pyx_v_flow_dir);
__Pyx_GIVEREF(__pyx_v_flow_dir);
PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_flow_dir);
__Pyx_INCREF(__pyx_v_flow_type);
__Pyx_GIVEREF(__pyx_v_flow_type);
PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_flow_type);
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_canal));
__Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_canal));
PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, ((PyObject *)__pyx_cur_scope->__pyx_v_canal));
__Pyx_INCREF(__pyx_v_prev_canal);
__Pyx_GIVEREF(__pyx_v_prev_canal);
PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_prev_canal);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
PyObject* sequence = __pyx_t_5;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4677, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_3 = PyList_GET_ITEM(sequence, 0);
__pyx_t_9 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_9);
#else
__pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext;
index = 0; __pyx_t_3 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
__Pyx_GOTREF(__pyx_t_3);
index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed;
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_6), 2) < 0) __PYX_ERR(0, 4677, __pyx_L1_error)
__pyx_t_10 = NULL;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L8_unpacking_done;
__pyx_L7_unpacking_failed:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_10 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 4677, __pyx_L1_error)
__pyx_L8_unpacking_done:;
}
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__pyx_cur_scope->__pyx_v_canal_range = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_v_starting_point = __pyx_t_8;
}
4678:
4679: #initialize/clear dictionaries to store demand/delivery variables needed to take
4680: #the total 'available flow' and distribute it among the canal nodes
+4681: type_deliveries = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_type_deliveries = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+4682: type_demands = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_type_demands = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+4683: type_fractions = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_type_fractions = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+4684: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4684, __pyx_L1_error) }
__pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4684, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4684, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4684, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_9));
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4685: type_deliveries[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4685, __pyx_L1_error)
+4686: type_demands[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4686, __pyx_L1_error)
+4687: type_fractions[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4687, __pyx_L1_error)
4688:
4689: #make sure that the available flow is less than the initial capacity of the canal
+4690: excess_flow = 0.0
__pyx_v_excess_flow = 0.0;
+4691: unmet_demand = 0.0
__pyx_v_unmet_demand = 0.0;
+4692: total_demand = 0.0
__pyx_v_total_demand = 0.0;
+4693: turnback_flow = 0.0
__pyx_v_turnback_flow = 0.0;
+4694: for canal_loc in canal_range:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) { __pyx_t_5 = __pyx_cur_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0; __pyx_t_11 = NULL; } else { __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4694, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4694, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4694, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_11(__pyx_t_5); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4694, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4694, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_canal_loc = __pyx_t_8; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4695: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4695, __pyx_L1_error) }
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4695, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4695, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4696: type_demands[zz] += canal.demand[zz][canal_loc]
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_zz); __pyx_t_13 = __pyx_cur_scope->__pyx_v_zz; __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4696, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_t_13, __pyx_t_6) < 0)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4697: total_demand += canal.demand[zz][canal_loc]
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4697, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4697, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_total_demand = __pyx_t_14;
4698:
4699: #if the available flow is greater than the total demand on the canal, the difference
4700: #is returned by the function as 'excess flow'
+4701: if available_flow > total_demand:
__pyx_t_1 = ((__pyx_v_available_flow > __pyx_v_total_demand) != 0);
if (__pyx_t_1) {
/* … */
}
+4702: excess_flow += available_flow - total_demand
__pyx_v_excess_flow = (__pyx_v_excess_flow + (__pyx_v_available_flow - __pyx_v_total_demand));
+4703: available_flow = total_demand
__pyx_v_available_flow = __pyx_v_total_demand;
4704:
+4705: available_flow, excess_flow_int = canal.check_flow_capacity(available_flow, starting_point, flow_dir)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_check_flow_capacity); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_7, __pyx_t_3, __pyx_v_flow_dir}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_7, __pyx_t_3, __pyx_v_flow_dir}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_v_flow_dir); __pyx_t_7 = 0; __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4705, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_15 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_15); #else __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_9 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_9)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_15 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_15)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_15); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_3), 2) < 0) __PYX_ERR(0, 4705, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L17_unpacking_done; __pyx_L16_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4705, __pyx_L1_error) __pyx_L17_unpacking_done:; } __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_available_flow = __pyx_t_14; __pyx_v_excess_flow_int = __pyx_t_16;
+4706: excess_flow += excess_flow_int
__pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_excess_flow_int);
4707:
+4708: available_capacity_int = max(available_flow, 0.0)
__pyx_t_16 = 0.0;
__pyx_t_14 = __pyx_v_available_flow;
if (((__pyx_t_16 > __pyx_t_14) != 0)) {
__pyx_t_17 = __pyx_t_16;
} else {
__pyx_t_17 = __pyx_t_14;
}
__pyx_v_available_capacity_int = __pyx_t_17;
+4709: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4709, __pyx_L1_error) }
__pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_15); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4709, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4709, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_15))||((__pyx_t_15) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_15)->tp_name), 0))) __PYX_ERR(0, 4709, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_15));
__Pyx_GIVEREF(__pyx_t_15);
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4710: if type_demands[zz] > 0.0:
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = PyObject_RichCompare(__pyx_t_15, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L20; }
+4711: type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
__pyx_t_17 = 0.0;
__pyx_t_16 = 1.0;
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = PyObject_RichCompare(__pyx_t_9, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_1) {
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_15 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_INCREF(__pyx_t_15);
__pyx_t_3 = __pyx_t_15;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_7 = PyFloat_FromDouble(__pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_1) {
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_15 = __pyx_t_9;
__pyx_t_9 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_15 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __pyx_t_15;
__Pyx_INCREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_t_3) < 0)) __PYX_ERR(0, 4711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4712: else:
+4713: type_fractions[zz] = 0.0
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4713, __pyx_L1_error)
}
__pyx_L20:;
+4714: available_capacity_int -= type_demands[zz]*type_fractions[zz]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = PyNumber_Multiply(__pyx_t_15, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_available_capacity_int = __pyx_t_17;
4715:
4716: #canal priority
+4717: priority_list = self.canal_priority[canal.name]
if (unlikely(__pyx_v_self->canal_priority == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4717, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_priority, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 4717, __pyx_L1_error)
__pyx_v_priority_list = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
4718: #contracts on this canal
+4719: contract_list = self.canal_contract[contract_canal]
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4719, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_contract_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 4719, __pyx_L1_error)
__pyx_v_contract_list = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
+4720: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4720, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4720, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4720, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4721: district_obj.private_demand = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_district_obj->private_demand); __Pyx_DECREF(__pyx_v_district_obj->private_demand); __pyx_v_district_obj->private_demand = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+4722: district_obj.private_delivery = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_district_obj->private_delivery); __Pyx_DECREF(__pyx_v_district_obj->private_delivery); __pyx_v_district_obj->private_delivery = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+4723: for district_obj in self.urban_list:
if (unlikely(__pyx_v_self->urban_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4723, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->urban_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4723, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4723, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4724: district_obj.private_demand = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_district_obj->private_demand); __Pyx_DECREF(__pyx_v_district_obj->private_demand); __pyx_v_district_obj->private_demand = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+4725: district_obj.private_delivery = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_district_obj->private_delivery); __Pyx_DECREF(__pyx_v_district_obj->private_delivery); __pyx_v_district_obj->private_delivery = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+4726: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4726, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4726, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4726, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4727: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4727, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4727, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4727, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4727, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4728: private_demand_constraint = private_obj.find_node_demand(contract_list, search_type, district_key)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_15, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_15, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15); __pyx_t_15 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_district_key); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_private_demand_constraint = __pyx_t_17;
+4729: self.district_keys[district_key].private_demand[private_obj.key] = private_demand_constraint
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4729, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 4729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4730: self.district_keys[district_key].private_delivery[private_obj.key] = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district_key)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_18 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_15, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_15, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_19 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_18) { __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_8, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_8, __pyx_v_district_key); __pyx_t_3 = 0; __pyx_t_15 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4730, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 4730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4731: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4731, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4731, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4731, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4731, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4732: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4732, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4732, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4732, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4733: private_demand_constraint = private_obj.find_node_demand(contract_list, search_type, district_key)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_v_district_key); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_15, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_private_demand_constraint = __pyx_t_17;
+4734: self.district_keys[district_key].private_demand[private_obj.key] = private_demand_constraint
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4734, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 4734, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4735: self.district_keys[district_key].private_delivery[private_obj.key] = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district_key)
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_19 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_18 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_8, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_8, __pyx_v_district_key); __pyx_t_19 = 0; __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_18, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4735, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 4735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4736:
4737:
4738: #initial capacity check on flow available for delivery (i.e., canal capacity at starting node)
4739: #MAIN DISTRIBUTION LOOP - within the canal range identified above, distribute the available flow to each node based on the canal capacity and the different demand magnitudes and priorities at each node
+4740: for canal_loc in canal_range:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) { __pyx_t_5 = __pyx_cur_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0; __pyx_t_11 = NULL; } else { __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4740, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4740, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4740, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_11(__pyx_t_5); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4740, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_canal_loc = __pyx_t_8; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4741: #first, find the fraction of each priority that can be diverted at this node, based on total canal demands and canal conveyance capacity
4742: # available_capacity_int = available_flow
4743: #for zz in type_list:
4744: #type_demands[zz] = 0.0
4745: #for type_loc in canal_range:
4746: #type_demands[zz] += canal.demand[zz][type_loc]
4747:
4748: #for zz in type_list:
4749: #find the fraction of each priority type that can be filled, based on canal capacity and downstream demands
4750: #if type_demands[zz] > 0.0:
4751: #type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
4752: #else:
4753: #type_fractions[zz] = 0.0
4754: #available_capacity_int -= type_demands[zz]*type_fractions[zz]
4755: #type_demands[zz] -= canal.demand[zz][canal_loc]
4756:
4757: # #find type of the object at the current node
+4758: if self.canal_district[canal.name][canal_loc].is_Waterbank == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4758, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4758, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_1) {
/* … */
goto __pyx_L35;
}
4759: #find the object at the current node
+4760: waterbank_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4760, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 4760, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_9));
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
+4761: location_delivery = 0.0
__pyx_v_location_delivery = 0.0;
4762:
4763: #for waterbanks, we calculate the demands of each waterbank partner individually
+4764: for participant_key in waterbank_obj.participant_list:
if (unlikely(__pyx_cur_scope->__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4764, __pyx_L1_error)
}
__pyx_t_9 = __pyx_cur_scope->__pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4764, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4764, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4764, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4765: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4765, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_num_members = __pyx_t_8;
+4766: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4766, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_District); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4766, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4766, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_1) {
/* … */
goto __pyx_L38;
}
+4767: district_obj2 = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4767, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj2, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
+4768: participant_obj = district_obj2
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj2)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj2));
+4769: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4769, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4769, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_1) {
/* … */
}
__pyx_L38:;
+4770: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4770, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4770, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_7));
__pyx_t_7 = 0;
+4771: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
4772:
4773: #find waterbank partner demand (i.e., recharge capacity of their ownership share)
+4774: demand_constraint = waterbank_obj.find_node_demand(contract_list, participant_key, num_members, search_type)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_15, __pyx_v_search_type}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_15, __pyx_v_search_type}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_19 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_8, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_8, __pyx_v_search_type); __pyx_t_15 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4774, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_demand_constraint = __pyx_t_17;
4775: #find how much water is allocated to each priority demand based on the total space and turnout at this node
+4776: current_storage = sum((waterbank_obj.storage[_] for _ in waterbank_obj.participant_list))
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4776, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_2generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_2generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__Pyx_TraceDeclarations
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4776, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj)) { __Pyx_RaiseClosureNameError("waterbank_obj"); __PYX_ERR(0, 4776, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4776, __pyx_L1_error)
}
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4776, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj)) { __Pyx_RaiseClosureNameError("waterbank_obj"); __PYX_ERR(0, 4776, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4776, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->storage, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4776, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_5generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_7 = __pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_18 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4776, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_v_current_storage = __pyx_t_17;
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_4_genexpr {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *__pyx_outer_scope;
PyObject *__pyx_v__;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
};
+4777: canal_fractions = canal.find_priority_fractions(waterbank_obj.tot_storage - current_storage, type_fractions, type_list, canal_loc, flow_dir)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_find_priority_fractions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = PyFloat_FromDouble((__pyx_cur_scope->__pyx_v_waterbank_obj->tot_storage - __pyx_v_current_storage)); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4777, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_19, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_t_15, __pyx_v_flow_dir}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_19, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_t_15, __pyx_v_flow_dir}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_3 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_type_fractions); __Pyx_GIVEREF(__pyx_v_type_fractions); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_type_fractions); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_type_list); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_v_flow_dir); __pyx_t_19 = 0; __pyx_t_15 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4777, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_18)); __pyx_t_18 = 0;
4778: #does this partner want to bank water?
4779: #find if banking partner wants to bank water
+4780: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, waterbank_obj.banked[participant_key], waterbank_obj.bank_cap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4780, __pyx_L1_error) }
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_cur_scope->__pyx_v_waterbank_obj->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4780, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_waterbank_obj->banked, __pyx_v_participant_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely(__pyx_cur_scope->__pyx_v_waterbank_obj->bank_cap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4780, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_waterbank_obj->bank_cap, __pyx_v_participant_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_15, __pyx_t_19, __pyx_t_6, __pyx_t_20};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_15, __pyx_t_19, __pyx_t_6, __pyx_t_20};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_t_3);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_15);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_19);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_t_20);
__pyx_t_3 = 0;
__pyx_t_15 = 0;
__pyx_t_19 = 0;
__pyx_t_6 = 0;
__pyx_t_20 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4780, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_v_deliveries = __pyx_t_17;
4781: #flood deliveries to bank
4782: #deliveries = waterbank_obj.set_request_constraints(demand_constraint, search_type, contract_list)
4783: #what priority does their banked water have (can be both)
+4784: priority_bank_space = waterbank_obj.find_priority_space(num_members, participant_key, search_type)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj), __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_22, __pyx_v_participant_key, __pyx_v_search_type}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_22, __pyx_v_participant_key, __pyx_v_search_type}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_participant_key); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_search_type); __pyx_t_22 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4784, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_priority_bank_space = __pyx_t_17;
+4785: priorities = waterbank_obj.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal, canal.name, participant_obj.contract_list)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj), __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4785, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_15 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[10] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_6, __pyx_t_22, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_cur_scope->__pyx_v_canal->name, __pyx_t_19}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 9+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[10] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_6, __pyx_t_22, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_cur_scope->__pyx_v_canal->name, __pyx_t_19}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 9+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif { __pyx_t_3 = PyTuple_New(9+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_15); __pyx_t_15 = NULL; } __Pyx_INCREF(__pyx_v_priority_list); __Pyx_GIVEREF(__pyx_v_priority_list); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_priority_list); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_contract_list); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_t_20); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_8, __pyx_v_contract_canal); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal->name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal->name); PyTuple_SET_ITEM(__pyx_t_3, 7+__pyx_t_8, __pyx_cur_scope->__pyx_v_canal->name); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 8+__pyx_t_8, __pyx_t_19); __pyx_t_6 = 0; __pyx_t_22 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_18)); __pyx_t_18 = 0;
4786: #need to adjust the water request to account for the banking partner share of the turnout
+4787: priority_turnout_adjusted = {}
__pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_18)); __pyx_t_18 = 0;
+4788: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4788, __pyx_L1_error) }
__pyx_t_18 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_23); __Pyx_INCREF(__pyx_t_7); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4788, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4788, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4788, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_7));
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4789: priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4789, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_cur_scope->__pyx_v_canal->turnout_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4789, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->turnout_frac, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_3) < 0)) __PYX_ERR(0, 4789, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4790: #deliver water to the waterbank
+4791: actual_deliveries = waterbank_obj.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,participant_key)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj), __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4791, __pyx_L1_error) } __pyx_t_19 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_participant_key}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_participant_key}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_7 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_INCREF(__pyx_v_priority_turnout_adjusted); __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted); __Pyx_INCREF(__pyx_v_canal_fractions); __Pyx_GIVEREF(__pyx_v_canal_fractions); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_canal_fractions); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_type_list); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_participant_key); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4791, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_actual_deliveries = __pyx_t_17;
4792: #keep track of total demands at this node
+4793: location_delivery += actual_deliveries
__pyx_v_location_delivery = (__pyx_v_location_delivery + __pyx_v_actual_deliveries);
4794: #adjust accounts for overall contracts and invididual districts
+4795: delivery_by_contract = participant_obj.adjust_accounts(0.0, actual_deliveries,contract_list, search_type, wateryear, waterbank_obj.key)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4795, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_actual_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[7] = {__pyx_t_20, __pyx_float_0_0, __pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_19, __pyx_cur_scope->__pyx_v_waterbank_obj->key};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[7] = {__pyx_t_20, __pyx_float_0_0, __pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_19, __pyx_cur_scope->__pyx_v_waterbank_obj->key};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_float_0_0);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_t_7);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_19);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_waterbank_obj->key);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_waterbank_obj->key);
PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_cur_scope->__pyx_v_waterbank_obj->key);
__pyx_t_7 = 0;
__pyx_t_19 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_22, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4795, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
4796:
+4797: for contract_key in delivery_by_contract:
__pyx_t_23 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4797, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_24), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_18);
__pyx_t_18 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_25 = __Pyx_dict_iter_next(__pyx_t_18, __pyx_t_24, &__pyx_t_23, &__pyx_t_3, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_25 == 0)) break;
if (unlikely(__pyx_t_25 == -1)) __PYX_ERR(0, 4797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4797, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_key, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
4798: #update the accounting for deliveries made by each contract (overall contract accounting - not ind. district)
4799: # contract_object = self.contract_keys[contract_keyy]
+4800: self.contract_keys[contract_key].adjust_accounts(delivery_by_contract[contract_key], search_type, wateryear)
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4800, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4800, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_20 = NULL;
__pyx_t_25 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_25 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_t_7};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_t_7};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} else
#endif
{
__pyx_t_6 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_25, __pyx_t_22);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_25, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_25, __pyx_t_7);
__pyx_t_22 = 0;
__pyx_t_7 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
4801:
4802: #find new banking demands
+4803: self.find_node_demand_bank(waterbank_obj, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
__pyx_t_9 = ((PyObject *)__pyx_cur_scope->__pyx_v_waterbank_obj);
__Pyx_INCREF(__pyx_t_9);
__pyx_t_18 = ((PyObject *)__pyx_cur_scope->__pyx_v_canal);
__Pyx_INCREF(__pyx_t_18);
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4803, __pyx_L1_error) }
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_bank(__pyx_v_self, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_9), ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_18), __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4804: current_storage = sum((waterbank_obj.storage[_] for _ in waterbank_obj.participant_list))
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_3genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4804, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_5generator3, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_5generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__Pyx_TraceDeclarations
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4804, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj)) { __Pyx_RaiseClosureNameError("waterbank_obj"); __PYX_ERR(0, 4804, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4804, __pyx_L1_error)
}
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4804, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj)) { __Pyx_RaiseClosureNameError("waterbank_obj"); __PYX_ERR(0, 4804, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->storage == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4804, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_waterbank_obj->storage, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4804, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_8generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_18 = __pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4804, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_current_storage = __pyx_t_17;
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_5_genexpr {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *__pyx_outer_scope;
PyObject *__pyx_v__;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
};
4805: # current_storage = 0.0
4806: # for participant_key in waterbank_obj.participant_list:
4807: # current_storage += waterbank_obj.storage[participant_key]
4808:
+4809: canal.find_turnout_adjustment(waterbank_obj.tot_storage - current_storage, flow_dir, canal_loc, type_list)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = PyFloat_FromDouble((__pyx_cur_scope->__pyx_v_waterbank_obj->tot_storage - __pyx_v_current_storage)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4809, __pyx_L1_error) } __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_3, __pyx_v_flow_dir, __pyx_t_19, __pyx_v_type_list}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_3, __pyx_v_flow_dir, __pyx_t_19, __pyx_v_type_list}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif { __pyx_t_7 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_type_list); __pyx_t_3 = 0; __pyx_t_19 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
4810:
4811:
4812: # #find type of the object at the current node
+4813: elif self.canal_district[canal.name][canal_loc].is_District == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4813, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_is_District); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_1) {
/* … */
goto __pyx_L35;
}
4814: #find the object at the current node
+4815: district_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4815, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4815, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
+4816: location_delivery = 0.0
__pyx_v_location_delivery = 0.0;
4817:
4818: #find demand at the node
4819: #partial delivery is used if the district recieves less than full daily demand due to projected contract allocations being lower than expected remaining annual demand
4820: #find district demand at the node
+4821: if search_type == "recovery":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4821, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L43; }
+4822: demand_constraint = district_obj.find_node_output()
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); } } __pyx_t_9 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_18); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4822, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_demand_constraint = __pyx_t_17;
4823: else:
+4824: demand_constraint = district_obj.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
/*else*/ {
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_3 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_t_19};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_t_19};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
{
__pyx_t_6 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_t_19);
__pyx_t_7 = 0;
__pyx_t_19 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4824, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_demand_constraint = __pyx_t_17;
}
__pyx_L43:;
4825: #update the fractions based on turnout capacity/use capacity at the current node
4826:
+4827: canal_fractions = canal.find_priority_fractions(demand_constraint, type_fractions, type_list, canal_loc, flow_dir)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_find_priority_fractions); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4827, __pyx_L1_error) } __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_6, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_t_19, __pyx_v_flow_dir}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_6, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_t_19, __pyx_v_flow_dir}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif { __pyx_t_3 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_type_fractions); __Pyx_GIVEREF(__pyx_v_type_fractions); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_type_fractions); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_type_list); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_v_flow_dir); __pyx_t_6 = 0; __pyx_t_19 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4827, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
4828: #if a district is an in-leiu bank, partners can send water to this district for banking recharge
+4829: if (district_obj.in_leiu_banking and search_type == "banking") or (district_obj.in_leiu_banking and search_type == "recovery"):
__pyx_t_1 = (__pyx_v_district_obj->in_leiu_banking != 0);
if (!__pyx_t_1) {
goto __pyx_L46_next_or;
} else {
}
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4829, __pyx_L1_error)
__pyx_t_26 = (__pyx_t_1 != 0);
if (!__pyx_t_26) {
} else {
__pyx_t_2 = __pyx_t_26;
goto __pyx_L45_bool_binop_done;
}
__pyx_L46_next_or:;
__pyx_t_26 = (__pyx_v_district_obj->in_leiu_banking != 0);
if (__pyx_t_26) {
} else {
__pyx_t_2 = __pyx_t_26;
goto __pyx_L45_bool_binop_done;
}
__pyx_t_26 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_26 < 0)) __PYX_ERR(0, 4829, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_26 != 0);
__pyx_t_2 = __pyx_t_1;
__pyx_L45_bool_binop_done:;
if (__pyx_t_2) {
/* … */
goto __pyx_L44;
}
+4830: for participant_key in district_obj.participant_list:
if (unlikely(__pyx_v_district_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4830, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_district_obj->participant_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4830, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4830, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4830, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4831: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4831, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4831, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_v_num_members = __pyx_t_8;
+4832: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4832, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_is_District); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4832, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L51;
}
+4833: district_obj2 = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4833, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4833, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 4833, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj2, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_18));
__pyx_t_18 = 0;
+4834: participant_obj = district_obj2
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj2)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj2));
+4835: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4835, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4835, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_2) {
/* … */
}
__pyx_L51:;
+4836: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4836, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4836, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_18));
__pyx_t_18 = 0;
+4837: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
4838:
4839: #find if the banking partner wants to bank
+4840: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, district_obj.inleiubanked[participant_key], district_obj.inleiucap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4840, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (unlikely(__pyx_v_district_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4840, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_district_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4840, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_15 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_15)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_15);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_6, __pyx_t_7, __pyx_t_22, __pyx_t_20};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_6, __pyx_t_7, __pyx_t_22, __pyx_t_20};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_21 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (__pyx_t_15) {
__Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_15); __pyx_t_15 = NULL;
}
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_t_19);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_t_22);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_8, __pyx_t_20);
__pyx_t_19 = 0;
__pyx_t_6 = 0;
__pyx_t_7 = 0;
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_21, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4840, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_v_deliveries = __pyx_t_17;
4841: #determine the priorities of the banking
+4842: priority_bank_space = district_obj.find_leiu_priority_space(demand_constraint, num_members, participant_key, toggle_district_recharge, search_type)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_21, __pyx_t_20, __pyx_v_participant_key, __pyx_t_22, __pyx_v_search_type}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_21, __pyx_t_20, __pyx_v_participant_key, __pyx_t_22, __pyx_v_search_type}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_6 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_20); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_v_search_type); __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_22 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_priority_bank_space = __pyx_t_17;
+4843: priorities = participant_obj.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4843, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_6, __pyx_t_22, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_canal};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_6, __pyx_t_22, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_canal};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_INCREF(__pyx_v_priority_list);
__Pyx_GIVEREF(__pyx_v_priority_list);
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_priority_list);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_t_22);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_t_20);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_canal);
__Pyx_GIVEREF(__pyx_v_contract_canal);
PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_v_contract_canal);
__pyx_t_6 = 0;
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4843, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
4844:
4845: #need to adjust the water request to account for the banking partner share of the turnout
+4846: priority_turnout_adjusted = {}
__pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_18)); __pyx_t_18 = 0;
+4847: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4847, __pyx_L1_error) }
__pyx_t_18 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_24 = 0;
for (;;) {
if (__pyx_t_24 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_24); __Pyx_INCREF(__pyx_t_3); __pyx_t_24++; if (unlikely(0 < 0)) __PYX_ERR(0, 4847, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_18, __pyx_t_24); __pyx_t_24++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4847, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4848: priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4848, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4848, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_cur_scope->__pyx_v_canal->turnout_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4848, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->turnout_frac, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4848, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_20 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4848, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_20); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4848, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_7) < 0)) __PYX_ERR(0, 4848, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4849: #make deliveries, adjust demands & recharge availability
+4850: direct_deliveries, recharge_deliveries, undelivered = district_obj.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,search_type, toggle_district_recharge,participant_key,wateryear)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4850, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_20, __pyx_v_participant_key, __pyx_t_3}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_20, __pyx_v_participant_key, __pyx_t_3}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_6 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_22) { __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_22); __pyx_t_22 = NULL; } __Pyx_INCREF(__pyx_v_priority_turnout_adjusted); __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted); __Pyx_INCREF(__pyx_v_canal_fractions); __Pyx_GIVEREF(__pyx_v_canal_fractions); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_canal_fractions); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_type_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_t_20); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_8, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 6+__pyx_t_8, __pyx_t_3); __pyx_t_20 = 0; __pyx_t_3 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_18))) || (PyList_CheckExact(__pyx_t_18))) { PyObject* sequence = __pyx_t_18; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4850, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else { Py_ssize_t index = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_20)->tp_iternext; index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_20); if (unlikely(!__pyx_t_7)) goto __pyx_L54_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_6 = __pyx_t_10(__pyx_t_20); if (unlikely(!__pyx_t_6)) goto __pyx_L54_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 2; __pyx_t_3 = __pyx_t_10(__pyx_t_20); if (unlikely(!__pyx_t_3)) goto __pyx_L54_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_20), 3) < 0) __PYX_ERR(0, 4850, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; goto __pyx_L55_unpacking_done; __pyx_L54_unpacking_failed:; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4850, __pyx_L1_error) __pyx_L55_unpacking_done:; } __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_direct_deliveries = __pyx_t_17; __pyx_v_recharge_deliveries = __pyx_t_16; __pyx_v_undelivered = __pyx_t_14;
+4851: actual_deliveries = direct_deliveries + recharge_deliveries
__pyx_v_actual_deliveries = (__pyx_v_direct_deliveries + __pyx_v_recharge_deliveries);
+4852: location_delivery += actual_deliveries
__pyx_v_location_delivery = (__pyx_v_location_delivery + __pyx_v_actual_deliveries);
4853: #adjust accounts for overall contracts and invididual districts
+4854: delivery_by_contract = participant_obj.adjust_accounts(direct_deliveries, recharge_deliveries,contract_list, search_type, wateryear, district_obj.key)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 4854, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[7] = {__pyx_t_22, __pyx_t_6, __pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_20, __pyx_v_district_obj->key};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[7] = {__pyx_t_22, __pyx_t_6, __pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_20, __pyx_v_district_obj->key};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_21 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_t_7);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_t_20);
__Pyx_INCREF(__pyx_v_district_obj->key);
__Pyx_GIVEREF(__pyx_v_district_obj->key);
PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_v_district_obj->key);
__pyx_t_6 = 0;
__pyx_t_7 = 0;
__pyx_t_20 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_21, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4854, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
+4855: district_obj.adjust_bank_accounts(participant_key, direct_deliveries, recharge_deliveries, wateryear)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_adjust_bank_accounts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_participant_key, __pyx_t_21, __pyx_t_20, __pyx_t_7}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_participant_key, __pyx_t_21, __pyx_t_20, __pyx_t_7}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_22 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_7); __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_7 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_22, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4856: for contract_key in delivery_by_contract:
__pyx_t_24 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4856, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_23), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4856, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_18);
__pyx_t_18 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_25 = __Pyx_dict_iter_next(__pyx_t_18, __pyx_t_23, &__pyx_t_24, &__pyx_t_3, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_25 == 0)) break;
if (unlikely(__pyx_t_25 == -1)) __PYX_ERR(0, 4856, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4856, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_key, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
+4857: self.contract_keys[contract_key].adjust_accounts(delivery_by_contract[contract_key], search_type, wateryear)
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4857, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4857, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_25 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_25 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_22, __pyx_v_search_type, __pyx_t_20};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_22, __pyx_v_search_type, __pyx_t_20};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_6 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_25, __pyx_t_22);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_25, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_25, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
4858: else:
4859: #find if district wants to purchase this type of flow
+4860: deliveries = district_obj.set_request_constraints(demand_constraint, search_type, contract_list, 0.0, 999.0, dowy, wateryear)
/*else*/ {
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_20, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_7, __pyx_t_6};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_20, __pyx_t_3, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_7, __pyx_t_6};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_t_3);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_float_0_0);
__Pyx_INCREF(__pyx_float_999_0);
__Pyx_GIVEREF(__pyx_float_999_0);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_float_999_0);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_t_6);
__pyx_t_3 = 0;
__pyx_t_7 = 0;
__pyx_t_6 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_22, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4860, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_deliveries = __pyx_t_14;
4861: #find what priority district has for flow purchases
+4862: priorities = district_obj.set_demand_priority(priority_list, contract_list, demand_constraint, deliveries, demand_constraint, search_type, contract_canal)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_22, __pyx_t_6, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_canal}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_22, __pyx_t_6, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_canal}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_20 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_priority_list); __Pyx_GIVEREF(__pyx_v_priority_list); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_8, __pyx_v_priority_list); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_8, __pyx_v_contract_list); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_8, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_8, __pyx_v_contract_canal); __pyx_t_22 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4862, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
+4863: priority_turnout_adjusted = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
4864: #need to adjust the water request to account for the banking partner share of the turnout
+4865: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4865, __pyx_L1_error) }
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4865, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4865, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4865, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_18));
__Pyx_GIVEREF(__pyx_t_18);
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4866: priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4866, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (unlikely(__pyx_cur_scope->__pyx_v_canal->turnout_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4866, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->turnout_frac, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_20, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyNumber_Multiply(__pyx_t_18, __pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_20) < 0)) __PYX_ERR(0, 4866, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
4867: #make deliveries, adjust demands & recharge availability
+4868: direct_deliveries, recharge_deliveries, undelivered = district_obj.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,search_type,toggle_district_recharge,'none',wateryear)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4868, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_7, __pyx_n_u_none, __pyx_t_18}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_7, __pyx_n_u_none, __pyx_t_18}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif { __pyx_t_22 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_priority_turnout_adjusted); __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted); __Pyx_INCREF(__pyx_v_canal_fractions); __Pyx_GIVEREF(__pyx_v_canal_fractions); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_canal_fractions); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_type_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_n_u_none); __Pyx_GIVEREF(__pyx_n_u_none); PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_n_u_none); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_t_18); __pyx_t_7 = 0; __pyx_t_18 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_22, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4868, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_20 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_18 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_20 = PyList_GET_ITEM(sequence, 0); __pyx_t_22 = PyList_GET_ITEM(sequence, 1); __pyx_t_18 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_18); #else __pyx_t_20 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_22 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_18 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_20 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_20)) goto __pyx_L60_unpacking_failed; __Pyx_GOTREF(__pyx_t_20); index = 1; __pyx_t_22 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_22)) goto __pyx_L60_unpacking_failed; __Pyx_GOTREF(__pyx_t_22); index = 2; __pyx_t_18 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_18)) goto __pyx_L60_unpacking_failed; __Pyx_GOTREF(__pyx_t_18); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 3) < 0) __PYX_ERR(0, 4868, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L61_unpacking_done; __pyx_L60_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4868, __pyx_L1_error) __pyx_L61_unpacking_done:; } __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4868, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_direct_deliveries = __pyx_t_14; __pyx_v_recharge_deliveries = __pyx_t_16; __pyx_v_undelivered = __pyx_t_17;
4869: # actual_deliveries = direct_deliveries + recharge_deliveries
4870: #adjust accounts for overall contracts and invididual districts
+4871: if district_obj.has_private:
__pyx_t_2 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_2) {
/* … */
}
+4872: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4872, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4872, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4872, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4873: for district2_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4873, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_23); __Pyx_INCREF(__pyx_t_22); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4873, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_18, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4873, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_22))||((__pyx_t_22) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_22)->tp_name), 0))) __PYX_ERR(0, 4873, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district2_key, ((PyObject*)__pyx_t_22));
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4874: if district2_key == district_obj.key:
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_district2_key, __pyx_v_district_obj->key, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4874, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+4875: private_demand_constraint = private_obj.find_node_demand(contract_list, search_type, district2_key)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_22); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_22); } else #endif { __pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_district2_key); __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_6, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4875, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_private_demand_constraint = __pyx_t_17;
+4876: private_delivery_constraint = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district2_key)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_t_6, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_7, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[7] = {__pyx_t_3, __pyx_t_6, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_7, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_21 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_v_district2_key); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_21, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_private_delivery_constraint = __pyx_t_17;
+4877: delivery_to_private = min(private_demand_constraint, private_delivery_constraint,undelivered)
__pyx_t_17 = __pyx_v_private_delivery_constraint;
__pyx_t_16 = __pyx_v_undelivered;
__pyx_t_14 = __pyx_v_private_demand_constraint;
if (((__pyx_t_17 < __pyx_t_14) != 0)) {
__pyx_t_27 = __pyx_t_17;
} else {
__pyx_t_27 = __pyx_t_14;
}
__pyx_t_14 = __pyx_t_27;
if (((__pyx_t_16 < __pyx_t_14) != 0)) {
__pyx_t_27 = __pyx_t_16;
} else {
__pyx_t_27 = __pyx_t_14;
}
__pyx_v_delivery_to_private = __pyx_t_27;
+4878: undelivered -= delivery_to_private
__pyx_v_undelivered = (__pyx_v_undelivered - __pyx_v_delivery_to_private);
+4879: private_deliveries = private_obj.adjust_account_district(delivery_to_private,contract_list,search_type,wateryear, district2_key, district_obj.key)
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_adjust_account_district); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = PyFloat_FromDouble(__pyx_v_delivery_to_private); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_t_21, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district2_key, __pyx_v_district_obj->key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_t_21, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district2_key, __pyx_v_district_obj->key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_3 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_21); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_v_district2_key); __Pyx_INCREF(__pyx_v_district_obj->key); __Pyx_GIVEREF(__pyx_v_district_obj->key); PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_v_district_obj->key); __pyx_t_21 = 0; __pyx_t_7 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_3, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_22))||((__pyx_t_22) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_22)->tp_name), 0))) __PYX_ERR(0, 4879, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_private_deliveries, ((PyObject*)__pyx_t_22)); __pyx_t_22 = 0;
4880:
+4881: for contract_key in private_deliveries:
__pyx_t_24 = 0;
if (unlikely(__pyx_v_private_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4881, __pyx_L1_error)
}
__pyx_t_20 = __Pyx_dict_iterator(__pyx_v_private_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_28), (&__pyx_t_8)); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_22);
__pyx_t_22 = __pyx_t_20;
__pyx_t_20 = 0;
while (1) {
__pyx_t_25 = __Pyx_dict_iter_next(__pyx_t_22, __pyx_t_28, &__pyx_t_24, &__pyx_t_20, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_25 == 0)) break;
if (unlikely(__pyx_t_25 == -1)) __PYX_ERR(0, 4881, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (!(likely(PyUnicode_CheckExact(__pyx_t_20))||((__pyx_t_20) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_20)->tp_name), 0))) __PYX_ERR(0, 4881, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_key, ((PyObject*)__pyx_t_20));
__pyx_t_20 = 0;
+4882: self.contract_keys[contract_key].adjust_accounts(private_deliveries[contract_key], search_type, wateryear)
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4882, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_private_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4882, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_private_deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_21 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_6 = NULL;
__pyx_t_25 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_25 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_3, __pyx_v_search_type, __pyx_t_21};
__pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_3, __pyx_v_search_type, __pyx_t_21};
__pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_6); __pyx_t_6 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_25, __pyx_t_3);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_25, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_21);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_25, __pyx_t_21);
__pyx_t_3 = 0;
__pyx_t_21 = 0;
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_19, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+4883: location_delivery += private_deliveries[contract_key]
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(__pyx_v_private_deliveries == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4883, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_20, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_v_location_delivery = __pyx_t_27; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
4884:
+4885: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4885, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4885, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4885, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 4885, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4886: for district2_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4886, __pyx_L1_error)
}
__pyx_t_18 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_23); __Pyx_INCREF(__pyx_t_22); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4886, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_18, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4886, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_22))||((__pyx_t_22) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_22)->tp_name), 0))) __PYX_ERR(0, 4886, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district2_key, ((PyObject*)__pyx_t_22));
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4887: if district2_key == district_obj.key:
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_district2_key, __pyx_v_district_obj->key, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4887, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+4888: private_demand_constraint = private_obj.find_node_demand(contract_list, search_type, district2_key)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_22); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_22); } else #endif { __pyx_t_20 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_8, __pyx_v_district2_key); __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_private_demand_constraint = __pyx_t_27;
+4889: private_delivery_constraint = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district2_key)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[7] = {__pyx_t_21, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_7, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[7] = {__pyx_t_21, __pyx_t_20, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_7, __pyx_v_district2_key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_3 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_20); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_v_district2_key); __pyx_t_20 = 0; __pyx_t_7 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_3, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_private_delivery_constraint = __pyx_t_27;
+4890: delivery_to_private = min(private_demand_constraint, private_delivery_constraint,undelivered)
__pyx_t_27 = __pyx_v_private_delivery_constraint;
__pyx_t_17 = __pyx_v_undelivered;
__pyx_t_16 = __pyx_v_private_demand_constraint;
if (((__pyx_t_27 < __pyx_t_16) != 0)) {
__pyx_t_14 = __pyx_t_27;
} else {
__pyx_t_14 = __pyx_t_16;
}
__pyx_t_16 = __pyx_t_14;
if (((__pyx_t_17 < __pyx_t_16) != 0)) {
__pyx_t_14 = __pyx_t_17;
} else {
__pyx_t_14 = __pyx_t_16;
}
__pyx_v_delivery_to_private = __pyx_t_14;
+4891: undelivered -= delivery_to_private
__pyx_v_undelivered = (__pyx_v_undelivered - __pyx_v_delivery_to_private);
+4892: city_deliveries = private_obj.adjust_account_district(delivery_to_private,contract_list,search_type,wateryear, district2_key, district_obj.key)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_adjust_account_district); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_delivery_to_private); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[7] = {__pyx_t_20, __pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district2_key, __pyx_v_district_obj->key}; __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[7] = {__pyx_t_20, __pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district2_key, __pyx_v_district_obj->key}; __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_21 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_district2_key); __Pyx_GIVEREF(__pyx_v_district2_key); PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_8, __pyx_v_district2_key); __Pyx_INCREF(__pyx_v_district_obj->key); __Pyx_GIVEREF(__pyx_v_district_obj->key); PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_8, __pyx_v_district_obj->key); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_21, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF_SET(__pyx_v_city_deliveries, __pyx_t_22); __pyx_t_22 = 0;
4893:
+4894: for contract_key in city_deliveries:
if (likely(PyList_CheckExact(__pyx_v_city_deliveries)) || PyTuple_CheckExact(__pyx_v_city_deliveries)) { __pyx_t_22 = __pyx_v_city_deliveries; __Pyx_INCREF(__pyx_t_22); __pyx_t_28 = 0; __pyx_t_29 = NULL; } else { __pyx_t_28 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_v_city_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_29 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 4894, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_29)) { if (likely(PyList_CheckExact(__pyx_t_22))) { if (__pyx_t_28 >= PyList_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_19 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_28); __Pyx_INCREF(__pyx_t_19); __pyx_t_28++; if (unlikely(0 < 0)) __PYX_ERR(0, 4894, __pyx_L1_error) #else __pyx_t_19 = PySequence_ITEM(__pyx_t_22, __pyx_t_28); __pyx_t_28++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); #endif } else { if (__pyx_t_28 >= PyTuple_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_19 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_28); __Pyx_INCREF(__pyx_t_19); __pyx_t_28++; if (unlikely(0 < 0)) __PYX_ERR(0, 4894, __pyx_L1_error) #else __pyx_t_19 = PySequence_ITEM(__pyx_t_22, __pyx_t_28); __pyx_t_28++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); #endif } } else { __pyx_t_19 = __pyx_t_29(__pyx_t_22); if (unlikely(!__pyx_t_19)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4894, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_19); } if (!(likely(PyUnicode_CheckExact(__pyx_t_19))||((__pyx_t_19) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_19)->tp_name), 0))) __PYX_ERR(0, 4894, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_contract_key, ((PyObject*)__pyx_t_19)); __pyx_t_19 = 0; /* … */ } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+4895: self.contract_keys[contract_key].adjust_accounts(city_deliveries[contract_key], search_type, wateryear)
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4895, __pyx_L1_error)
}
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_v_city_deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = NULL;
__pyx_t_8 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_8 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_21, __pyx_v_search_type, __pyx_t_3};
__pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_21, __pyx_v_search_type, __pyx_t_3};
__pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
__pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_GIVEREF(__pyx_t_21);
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_21);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_t_3);
__pyx_t_21 = 0;
__pyx_t_3 = 0;
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4896: location_delivery += city_deliveries[contract_key]
__pyx_t_19 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_city_deliveries, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_location_delivery = __pyx_t_14;
4897:
+4898: delivery_by_contract = district_obj.adjust_accounts(direct_deliveries, recharge_deliveries,contract_list, search_type, wateryear, district_obj.key)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[7] = {__pyx_t_19, __pyx_t_22, __pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district_obj->key}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[7] = {__pyx_t_19, __pyx_t_22, __pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_v_district_obj->key}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_3 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_v_district_obj->key); __Pyx_GIVEREF(__pyx_v_district_obj->key); PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_v_district_obj->key); __pyx_t_22 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4898, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
+4899: for contract_key in delivery_by_contract:
__pyx_t_12 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4899, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_23), (&__pyx_t_8)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4899, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_18;
__pyx_t_18 = 0;
while (1) {
__pyx_t_25 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_23, &__pyx_t_12, &__pyx_t_18, NULL, NULL, __pyx_t_8);
if (unlikely(__pyx_t_25 == 0)) break;
if (unlikely(__pyx_t_25 == -1)) __PYX_ERR(0, 4899, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4899, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_key, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
+4900: self.contract_keys[contract_key].adjust_accounts(delivery_by_contract[contract_key], search_type, wateryear)
if (unlikely(__pyx_v_self->contract_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4900, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->contract_keys, __pyx_v_contract_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4900, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_22 = NULL;
__pyx_t_25 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_25 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_3, __pyx_v_search_type, __pyx_t_6};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_3, __pyx_v_search_type, __pyx_t_6};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_25, 3+__pyx_t_25); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(3+__pyx_t_25); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_25, __pyx_t_3);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_25, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_25, __pyx_t_6);
__pyx_t_3 = 0;
__pyx_t_6 = 0;
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_19, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4901: location_delivery += delivery_by_contract[contract_key]
__pyx_t_18 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_delivery_by_contract == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4901, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_contract_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4901, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_v_location_delivery = __pyx_t_14; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_L44:;
4902: #record flow and turnout on each canal, check for capacity turnback at the next node
4903: #find new district demand at the node
+4904: demand_constraint = district_obj.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_t_18}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_7, __pyx_t_18}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif { __pyx_t_3 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_search_type); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_t_18); __pyx_t_7 = 0; __pyx_t_18 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4904, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_demand_constraint = __pyx_t_14;
+4905: self.find_node_demand_district(district_obj, canal, canal_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
__pyx_t_9 = ((PyObject *)__pyx_cur_scope->__pyx_v_canal);
__Pyx_INCREF(__pyx_t_9);
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4905, __pyx_L1_error) }
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_district(__pyx_v_self, __pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_9), __pyx_v_canal_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_v_toggle_district_recharge);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4906: canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4906, __pyx_L1_error) } __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_t_3, __pyx_v_flow_dir, __pyx_t_18, __pyx_v_type_list}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_t_3, __pyx_v_flow_dir, __pyx_t_18, __pyx_v_type_list}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif { __pyx_t_6 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_t_18); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_v_type_list); __pyx_t_3 = 0; __pyx_t_18 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
4907:
4908:
+4909: elif self.canal_district[canal.name][canal_loc].is_Canal == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4909, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4909, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_19 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4909, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4909, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_19 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4909, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4909, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_2) {
/* … */
}
__pyx_L35:;
4910: #find the object at the current node
+4911: canal_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4911, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_cur_scope->__pyx_v_canal->name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4911, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_19, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4911, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 4911, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_9));
__pyx_t_9 = 0;
+4912: location_delivery = 0.0
__pyx_v_location_delivery = 0.0;
4913:
4914: #if object is a canal, determine if water can flow from current canal into this canal (and orient the direction of flow)
+4915: new_flow_dir = canal.flow_directions[flow_type][canal_obj.name]
if (unlikely(__pyx_cur_scope->__pyx_v_canal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4915, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->flow_directions, __pyx_v_flow_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_flow_dir, __pyx_t_19);
__pyx_t_19 = 0;
+4916: new_canal_size = self.canal_district_len[canal_obj.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4916, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_19); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4916, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_v_new_canal_size = __pyx_t_8;
4917: #how much flow can go into this new canal
+4918: turnout_available = canal.turnout[flow_dir][canal_loc]*cfs_tafd - canal.turnout_use[canal_loc]
if (unlikely(__pyx_cur_scope->__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4918, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_19, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_9, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_canal->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4918, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_GetItemInt_List(__pyx_cur_scope->__pyx_v_canal->turnout_use, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_9 = PyNumber_Subtract(__pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_turnout_available = __pyx_t_14;
4919: #initial demand for flow on the canal
4920: # location_delivery = 0.0
4921: # priorities = {}
4922: # priority_turnout_adjusted = {}
+4923: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4923, __pyx_L1_error) }
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_19 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_23); __Pyx_INCREF(__pyx_t_19); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L1_error)
#else
__pyx_t_19 = PySequence_ITEM(__pyx_t_9, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_19))||((__pyx_t_19) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_19)->tp_name), 0))) __PYX_ERR(0, 4923, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_19));
__Pyx_GIVEREF(__pyx_t_19);
__pyx_t_19 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4924: location_delivery += canal.demand[zz][canal_loc]*type_fractions[zz]
__pyx_t_19 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4924, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyNumber_Multiply(__pyx_t_18, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4924, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_location_delivery = __pyx_t_14;
4925: # priorities[zz] = 0.0
4926: # priority_turnout_adjusted[zz] = 0.0
4927:
4928: #if there is space & demand, 'jump' into new canal - outputs serve as turnouts from the current canal
+4929: location_delivery = min(location_delivery, turnout_available)
__pyx_t_14 = __pyx_v_turnout_available;
__pyx_t_27 = __pyx_v_location_delivery;
if (((__pyx_t_14 < __pyx_t_27) != 0)) {
__pyx_t_17 = __pyx_t_14;
} else {
__pyx_t_17 = __pyx_t_27;
}
__pyx_v_location_delivery = __pyx_t_17;
+4930: if turnout_available > 0.001 and location_delivery > 0.001:
__pyx_t_1 = ((__pyx_v_turnout_available > 0.001) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_2 = __pyx_t_1;
goto __pyx_L82_bool_binop_done;
}
__pyx_t_1 = ((__pyx_v_location_delivery > 0.001) != 0);
__pyx_t_2 = __pyx_t_1;
__pyx_L82_bool_binop_done:;
if (__pyx_t_2) {
/* … */
goto __pyx_L81;
}
+4931: new_excess_flow, canal_demands = self.distribute_canal_deliveries(dowy, canal_obj, canal.key, contract_canal, location_delivery, new_canal_size, wateryear, new_flow_dir, flow_type, search_type)
__pyx_t_9 = __pyx_cur_scope->__pyx_v_canal->key;
__Pyx_INCREF(__pyx_t_9);
if (!(likely(PyUnicode_CheckExact(__pyx_v_new_flow_dir))||((__pyx_v_new_flow_dir) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_new_flow_dir)->tp_name), 0))) __PYX_ERR(0, 4931, __pyx_L1_error)
__pyx_t_6 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_v_dowy, __pyx_v_canal_obj, ((PyObject*)__pyx_t_9), __pyx_v_contract_canal, __pyx_v_location_delivery, __pyx_v_new_canal_size, __pyx_v_wateryear, ((PyObject*)__pyx_v_new_flow_dir), __pyx_v_flow_type, __pyx_v_search_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4931, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (likely(__pyx_t_6 != Py_None)) {
PyObject* sequence = __pyx_t_6;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4931, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_3);
#else
__pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4931, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4931, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 4931, __pyx_L1_error)
}
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4931, __pyx_L1_error)
__pyx_v_new_excess_flow = __pyx_t_17;
__Pyx_XDECREF_SET(__pyx_v_canal_demands, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
4932: #update canal demands
+4933: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4933, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4933, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4933, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4934: canal.demand[zz][canal_loc] = canal_demands[zz]
if (unlikely(__pyx_v_canal_demands == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4934, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4934, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_v_canal_loc, __pyx_t_3, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 4934, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4935: if new_excess_flow > 0.0:
__pyx_t_2 = ((__pyx_v_new_excess_flow > 0.0) != 0);
if (__pyx_t_2) {
/* … */
}
+4936: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4936, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4936, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4936, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4936, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4937: canal.demand[zz][canal_loc] = 0.0
if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4937, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4937, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_canal_loc, __pyx_float_0_0, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 4937, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4938: #record deliveries
+4939: location_delivery -= new_excess_flow
__pyx_v_location_delivery = (__pyx_v_location_delivery - __pyx_v_new_excess_flow);
+4940: canal_fractions = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+4941: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4941, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_3); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4941, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4941, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4942: canal_fractions[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_canal_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4942, __pyx_L1_error)
4943: else:
4944: # new_excess_flow = 0.0
+4945: location_delivery = 0.0
/*else*/ {
__pyx_v_location_delivery = 0.0;
}
__pyx_L81:;
4946: # canal_fractions = {}
4947: # for zz in type_list:
4948: # canal_fractions[zz] = 0.0
4949:
+4950: canal.find_turnout_adjustment(turnout_available, flow_dir, canal_loc, type_list)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_turnout_available); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4950, __pyx_L1_error) } __pyx_t_18 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_9, __pyx_v_flow_dir, __pyx_t_19, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_9, __pyx_v_flow_dir, __pyx_t_19, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else #endif { __pyx_t_7 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_18) { __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18); __pyx_t_18 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_type_list); __pyx_t_9 = 0; __pyx_t_19 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4951:
4952:
4953: #record flow and turnout on each canal, check for capacity turnback at the next node
+4954: available_flow, turnback_flow, turnback_end, remaining_excess_flow = canal.update_canal_use(available_flow, location_delivery, flow_dir, canal_loc, starting_point, canal_size, type_list)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_canal), __pyx_n_s_update_canal_use); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4954, __pyx_L1_error) } __pyx_t_21 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_7, __pyx_t_19, __pyx_v_flow_dir, __pyx_t_9, __pyx_t_18, __pyx_t_22, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_7, __pyx_t_19, __pyx_v_flow_dir, __pyx_t_9, __pyx_t_18, __pyx_t_22, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_20 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_8, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_8, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_8, __pyx_t_22); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_8, __pyx_v_type_list); __pyx_t_7 = 0; __pyx_t_19 = 0; __pyx_t_9 = 0; __pyx_t_18 = 0; __pyx_t_22 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_20, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4954, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_20 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_22 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_18 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_20 = PyList_GET_ITEM(sequence, 1); __pyx_t_22 = PyList_GET_ITEM(sequence, 2); __pyx_t_18 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_18); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_20,&__pyx_t_22,&__pyx_t_18}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_20,&__pyx_t_22,&__pyx_t_18}; __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L91_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 4) < 0) __PYX_ERR(0, 4954, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L92_unpacking_done; __pyx_L91_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4954, __pyx_L1_error) __pyx_L92_unpacking_done:; } __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_22); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_available_flow = __pyx_t_17; __pyx_v_turnback_flow = __pyx_t_14; __pyx_v_turnback_end = __pyx_t_8; __pyx_v_remaining_excess_flow = __pyx_t_27;
+4955: excess_flow += remaining_excess_flow
__pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_remaining_excess_flow);
4956: #if there is more demand/available water than canal capacity at the next canal node, the 'extra' water (that was expected to be delivered down-canal in earlier calculations) can be distributed among upstream nodes if there is remaining demand
4957: # for zz in type_list:
4958: # type_demands[zz] -= canal.demand[zz][canal_loc]
+4959: toggle_demand_count = 0
__pyx_v_toggle_demand_count = 0;
+4960: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4960, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_18); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4960, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4960, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_18));
__Pyx_GIVEREF(__pyx_t_18);
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4961: type_demands[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4961, __pyx_L1_error)
+4962: for canal_loc_int in canal_range:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) { __pyx_t_6 = __pyx_cur_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0; __pyx_t_29 = NULL; } else { __pyx_t_23 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_29 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 4962, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_29)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_18); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4962, __pyx_L1_error) #else __pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } else { if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_18); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4962, __pyx_L1_error) #else __pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } } else { __pyx_t_18 = __pyx_t_29(__pyx_t_6); if (unlikely(!__pyx_t_18)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4962, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_18); } __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_18); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4962, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_canal_loc_int = __pyx_t_8; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4963: if toggle_demand_count == 1:
__pyx_t_2 = ((__pyx_v_toggle_demand_count == 1) != 0);
if (__pyx_t_2) {
/* … */
}
+4964: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4964, __pyx_L1_error) }
__pyx_t_18 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_12); __Pyx_INCREF(__pyx_t_22); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4964, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_18, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_22))||((__pyx_t_22) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_22)->tp_name), 0))) __PYX_ERR(0, 4964, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_22));
__Pyx_GIVEREF(__pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4965: type_demands[zz] += canal.demand[zz][canal_loc_int]
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_zz); __pyx_t_13 = __pyx_cur_scope->__pyx_v_zz; __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_t_13); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (unlikely(__pyx_cur_scope->__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4965, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_20, __pyx_v_canal_loc_int, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_t_13, __pyx_t_20) < 0)) __PYX_ERR(0, 4965, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4966: if canal_loc_int == canal_loc:
__pyx_t_2 = ((__pyx_v_canal_loc_int == __pyx_v_canal_loc) != 0);
if (__pyx_t_2) {
/* … */
}
+4967: toggle_demand_count = 1
__pyx_v_toggle_demand_count = 1;
4968:
+4969: if turnback_flow > 0.001:
__pyx_t_2 = ((__pyx_v_turnback_flow > 0.001) != 0);
if (__pyx_t_2) {
/* … */
}
+4970: remaining_excess_flow, unmet_canal_demands = self.distribute_canal_deliveries(dowy, canal, prev_canal, contract_canal, turnback_flow, turnback_end, wateryear, flow_dir, flow_type, search_type)
__pyx_t_6 = ((PyObject *)__pyx_cur_scope->__pyx_v_canal);
__Pyx_INCREF(__pyx_t_6);
__pyx_t_18 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->distribute_canal_deliveries(__pyx_v_self, __pyx_v_dowy, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_6), __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_v_turnback_flow, __pyx_v_turnback_end, __pyx_v_wateryear, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_search_type); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (likely(__pyx_t_18 != Py_None)) {
PyObject* sequence = __pyx_t_18;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4970, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_20 = PyTuple_GET_ITEM(sequence, 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_20);
#else
__pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 4970, __pyx_L1_error)
}
__pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4970, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_20))||((__pyx_t_20) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_20)->tp_name), 0))) __PYX_ERR(0, 4970, __pyx_L1_error)
__pyx_v_remaining_excess_flow = __pyx_t_27;
__Pyx_XDECREF_SET(__pyx_v_unmet_canal_demands, ((PyObject*)__pyx_t_20));
__pyx_t_20 = 0;
+4971: excess_flow += remaining_excess_flow
__pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_remaining_excess_flow);
+4972: available_capacity_int = max(available_flow, 0.0)
__pyx_t_27 = 0.0;
__pyx_t_14 = __pyx_v_available_flow;
if (((__pyx_t_27 > __pyx_t_14) != 0)) {
__pyx_t_17 = __pyx_t_27;
} else {
__pyx_t_17 = __pyx_t_14;
}
__pyx_v_available_capacity_int = __pyx_t_17;
+4973: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4973, __pyx_L1_error) }
__pyx_t_18 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_18); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_18)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_20 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_23); __Pyx_INCREF(__pyx_t_20); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4973, __pyx_L1_error)
#else
__pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_20))||((__pyx_t_20) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_20)->tp_name), 0))) __PYX_ERR(0, 4973, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_20));
__Pyx_GIVEREF(__pyx_t_20);
__pyx_t_20 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+4974: if type_demands[zz] > 0.0:
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_6 = PyObject_RichCompare(__pyx_t_20, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L104; }
+4975: type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
__pyx_t_17 = 0.0;
__pyx_t_27 = 1.0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_27); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_22 = PyObject_RichCompare(__pyx_t_6, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_2) {
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_27); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __pyx_t_22;
__pyx_t_22 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_20 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_INCREF(__pyx_t_20);
__pyx_t_3 = __pyx_t_20;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_17); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_22, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = __pyx_t_6;
__pyx_t_6 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_20 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __pyx_t_20;
__Pyx_INCREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_t_3) < 0)) __PYX_ERR(0, 4975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4976: else:
+4977: type_fractions[zz] = 0.0
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4977, __pyx_L1_error)
}
__pyx_L104:;
+4978: available_capacity_int -= type_demands[zz]*type_fractions[zz]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = PyNumber_Multiply(__pyx_t_20, __pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_available_capacity_int = __pyx_t_17;
4979:
4980: #sum remaining demand after all deliveries have been madw
+4981: unmet_demands = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_unmet_demands = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+4982: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4982, __pyx_L1_error) }
__pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_18); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4982, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 4982, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, ((PyObject*)__pyx_t_18));
__Pyx_GIVEREF(__pyx_t_18);
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4983: unmet_demands[zz] = sum((canal.demand[zz][_] for _ in canal_range))
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_6genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr *)__pyx_tp_new_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr(__pyx_ptype_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4983, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_8generator4, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_8generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__Pyx_TraceDeclarations
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4983, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) { __Pyx_RaiseClosureNameError("canal_range"); __PYX_ERR(0, 4983, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4983, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4983, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4983, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4983, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal)) { __Pyx_RaiseClosureNameError("canal"); __PYX_ERR(0, 4983, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4983, __pyx_L1_error)
}
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_zz)) { __Pyx_RaiseClosureNameError("zz"); __PYX_ERR(0, 4983, __pyx_L1_error) }
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal->demand, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4983, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_18 = __pyx_pf_11calfews_src_8model_cy_5Model_27distribute_canal_deliveries_6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_18); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_unmet_demands, __pyx_cur_scope->__pyx_v_zz, __pyx_t_6) < 0)) __PYX_ERR(0, 4983, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_6_genexpr {
PyObject_HEAD
struct __pyx_obj_11calfews_src_8model_cy___pyx_scope_struct_3_distribute_canal_deliveries *__pyx_outer_scope;
PyObject *__pyx_v__;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
4984:
+4985: return excess_flow, unmet_demands
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_excess_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_INCREF(__pyx_v_unmet_demands); __Pyx_GIVEREF(__pyx_v_unmet_demands); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_unmet_demands); __pyx_t_5 = 0; __pyx_r = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
4986:
4987:
+4988: cdef dict search_canal_demand(self, int dowy, Canal canal, str prev_canal, str contract_canal, str flow_dir, str flow_type, int wateryear, str search_type, dict existing_deliveries):
static PyObject *__pyx_f_11calfews_src_8model_cy_5Model_search_canal_demand(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, int __pyx_v_dowy, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, int __pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_existing_deliveries) {
PyObject *__pyx_v_type_list = 0;
PyObject *__pyx_v_priority_list = 0;
PyObject *__pyx_v_contract_list = 0;
PyObject *__pyx_v_demand_constraint_by_contracts = 0;
PyObject *__pyx_v_empty_demands = 0;
PyObject *__pyx_v_type_deliveries = 0;
PyObject *__pyx_v_available_to_canal = 0;
PyObject *__pyx_v_canal_demands = 0;
PyObject *__pyx_v_priorities = 0;
PyObject *__pyx_v_paper_fractions = 0;
int __pyx_v_toggle_partial_delivery;
int __pyx_v_toggle_district_recharge;
int __pyx_v_canal_size;
int __pyx_v_starting_point;
int __pyx_v_num_members;
int __pyx_v_canal_loc;
double __pyx_v_private_demand_constraint;
double __pyx_v_demand_constraint;
double __pyx_v_current_recovery;
double __pyx_v_current_storage;
double __pyx_v_total_demand;
double __pyx_v_priority_bank_space;
double __pyx_v_paper_amount;
double __pyx_v_total_district_demand;
double __pyx_v_total_available;
CYTHON_UNUSED double __pyx_v_existing_canal_space;
double __pyx_v_total_exchange;
double __pyx_v_paper_recovery;
double __pyx_v_private_deliveries;
double __pyx_v_direct_recovery;
double __pyx_v_max_flow;
double __pyx_v_committed;
double __pyx_v_location_delivery;
double __pyx_v_total_paper;
double __pyx_v_deliveries;
PyObject *__pyx_v_new_flow_dir = 0;
PyObject *__pyx_v_list_member = 0;
PyObject *__pyx_v_district_key = 0;
PyObject *__pyx_v_participant_key = 0;
PyObject *__pyx_v_zz = 0;
PyObject *__pyx_v_delivery_type = 0;
PyObject *__pyx_v_private_key = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj2 = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
PyObject *__pyx_v_canal_range = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_lookback_range = NULL;
PyObject *__pyx_v_lookback_loc = NULL;
PyObject *__pyx_v_paper_delivery = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("search_canal_demand", 0);
__Pyx_TraceCall("search_canal_demand", __pyx_f[0], 4988, 0, __PYX_ERR(0, 4988, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("calfews_src.model_cy.Model.search_canal_demand", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_type_list);
__Pyx_XDECREF(__pyx_v_priority_list);
__Pyx_XDECREF(__pyx_v_contract_list);
__Pyx_XDECREF(__pyx_v_demand_constraint_by_contracts);
__Pyx_XDECREF(__pyx_v_empty_demands);
__Pyx_XDECREF(__pyx_v_type_deliveries);
__Pyx_XDECREF(__pyx_v_available_to_canal);
__Pyx_XDECREF(__pyx_v_canal_demands);
__Pyx_XDECREF(__pyx_v_priorities);
__Pyx_XDECREF(__pyx_v_paper_fractions);
__Pyx_XDECREF(__pyx_v_new_flow_dir);
__Pyx_XDECREF(__pyx_v_list_member);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_zz);
__Pyx_XDECREF(__pyx_v_delivery_type);
__Pyx_XDECREF(__pyx_v_private_key);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF(__pyx_v_canal_range);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_lookback_range);
__Pyx_XDECREF(__pyx_v_lookback_loc);
__Pyx_XDECREF(__pyx_v_paper_delivery);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
4989: ## Cython type declarations for whole function
4990: cdef list type_list, priority_list, contract_list, demand_constraint_by_contracts
4991: cdef dict empty_demands, type_deliveries, available_to_canal, canal_demands, priorities, paper_fractions
4992: cdef int toggle_partial_delivery, toggle_district_recharge, canal_size, starting_point, num_members, canal_loc
4993: cdef double private_demand_constraint, demand_constraint, current_recovery, current_storage, total_demand, priority_bank_space, paper_amount, direct_amount, \
4994: total_district_demand, total_available, existing_canal_space, total_exchange, paper_recovery, private_deliveries, direct_recovery, max_flow, \
4995: committed, location_delivery, total_paper, deliveries
4996: cdef str new_flow_dir, list_member, district_key, participant_key, zz, delivery_type, private_key
4997: cdef District district_obj, district_obj2
4998: cdef Private private_obj
4999: cdef Waterbank waterbank_obj
5000: cdef Canal canal_obj
5001: cdef Contract contract_obj
5002:
+5003: if search_type == 'flood':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_flood_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5003, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
5004: #for flood flows, need to distinguish between districts with a contract
5005: #to the water being spilled (1st priority), districts with a turnout on
5006: #a 'favored' canal (i.e, one that won't disrupt flows from other sources,
5007: #2nd priority), and districts with turnouts on other canals that can still
5008: #be technically reached from this source (3rd priority)
+5009: type_list = ['contractor', 'alternate', 'turnout', 'excess']
__pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_contractor); __Pyx_GIVEREF(__pyx_n_u_contractor); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_contractor); __Pyx_INCREF(__pyx_n_u_alternate); __Pyx_GIVEREF(__pyx_n_u_alternate); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_alternate); __Pyx_INCREF(__pyx_n_u_turnout); __Pyx_GIVEREF(__pyx_n_u_turnout); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_turnout); __Pyx_INCREF(__pyx_n_u_excess); __Pyx_GIVEREF(__pyx_n_u_excess); PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_excess); __pyx_v_type_list = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+5010: toggle_partial_delivery = 0
__pyx_v_toggle_partial_delivery = 0;
+5011: toggle_district_recharge = 1
__pyx_v_toggle_district_recharge = 1;
+5012: if search_type == 'delivery':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_delivery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5012, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+5013: type_list = [contract_canal]
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_contract_canal); __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+5014: toggle_partial_delivery = 1
__pyx_v_toggle_partial_delivery = 1;
+5015: toggle_district_recharge = 0
__pyx_v_toggle_district_recharge = 0;
+5016: if search_type == 'banking':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5016, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+5017: type_list = ['priority', 'secondary']
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_priority); __Pyx_GIVEREF(__pyx_n_u_priority); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_priority); __Pyx_INCREF(__pyx_n_u_secondary); __Pyx_GIVEREF(__pyx_n_u_secondary); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_secondary); __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+5018: toggle_partial_delivery = 0
__pyx_v_toggle_partial_delivery = 0;
+5019: toggle_district_recharge = 1
__pyx_v_toggle_district_recharge = 1;
+5020: if search_type == 'recovery':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5020, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
5021: #if we are trying to distribute recovery water, we need to know how much 'initial' space is owned by each district in the recovery capacity at a waterbank/leiubank and then how much supplemental space, which can be used by individual districts if the capacity is not being used (same as for banking above, just w/ different names)
+5022: type_list = ['initial', 'supplemental']
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_initial); __Pyx_GIVEREF(__pyx_n_u_initial); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_initial); __Pyx_INCREF(__pyx_n_u_supplemental); __Pyx_GIVEREF(__pyx_n_u_supplemental); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_supplemental); __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+5023: toggle_partial_delivery = 1
__pyx_v_toggle_partial_delivery = 1;
+5024: toggle_district_recharge = 0
__pyx_v_toggle_district_recharge = 0;
5025:
5026: #find the range of nodes to 'search' on this canal
+5027: canal_size = self.canal_district_len[canal.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5027, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5027, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5027, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_canal_size = __pyx_t_4;
+5028: if flow_dir == "closed":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_closed, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5028, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+5029: empty_demands = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_empty_demands = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+5030: for list_member in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5030, __pyx_L1_error) }
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5030, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5030, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5030, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_list_member, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5031: empty_demands[list_member] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_empty_demands, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5031, __pyx_L1_error)
+5032: return empty_demands
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_empty_demands); __pyx_r = __pyx_v_empty_demands; goto __pyx_L0;
5033: else:
+5034: canal_range, starting_point = self.set_canal_range(flow_dir, flow_type, canal, prev_canal, canal_size)
/*else*/ {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[6] = {__pyx_t_8, __pyx_v_flow_dir, __pyx_v_flow_type, ((PyObject *)__pyx_v_canal), __pyx_v_prev_canal, __pyx_t_7};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[6] = {__pyx_t_8, __pyx_v_flow_dir, __pyx_v_flow_type, ((PyObject *)__pyx_v_canal), __pyx_v_prev_canal, __pyx_t_7};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} else
#endif
{
__pyx_t_9 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__pyx_t_8) {
__Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
}
__Pyx_INCREF(__pyx_v_flow_dir);
__Pyx_GIVEREF(__pyx_v_flow_dir);
PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_v_flow_dir);
__Pyx_INCREF(__pyx_v_flow_type);
__Pyx_GIVEREF(__pyx_v_flow_type);
PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_v_flow_type);
__Pyx_INCREF(((PyObject *)__pyx_v_canal));
__Pyx_GIVEREF(((PyObject *)__pyx_v_canal));
PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, ((PyObject *)__pyx_v_canal));
__Pyx_INCREF(__pyx_v_prev_canal);
__Pyx_GIVEREF(__pyx_v_prev_canal);
PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_4, __pyx_v_prev_canal);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_4, __pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
PyObject* sequence = __pyx_t_3;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5034, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_6 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_6 = PyList_GET_ITEM(sequence, 0);
__pyx_t_9 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_9);
#else
__pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext;
index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed;
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 5034, __pyx_L1_error)
__pyx_t_10 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L11_unpacking_done;
__pyx_L10_unpacking_failed:;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_10 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 5034, __pyx_L1_error)
__pyx_L11_unpacking_done:;
}
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5034, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_canal_range = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_v_starting_point = __pyx_t_4;
}
5035:
5036: #initialize/clear dictionaries to store different types of demand on the canal
5037: #different flow 'modes' require different types of demand to be distinguished
5038:
+5039: type_deliveries = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_type_deliveries = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+5040: for list_member in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5040, __pyx_L1_error) }
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5040, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5040, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5040, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_list_member, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5041: canal.demand[list_member] = np.zeros(canal_size)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5041, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal->demand, __pyx_v_list_member, __pyx_t_9) < 0)) __PYX_ERR(0, 5041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5042: canal.turnout_frac[list_member] = np.zeros(canal_size)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_canal->turnout_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5042, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal->turnout_frac, __pyx_v_list_member, __pyx_t_9) < 0)) __PYX_ERR(0, 5042, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5043: if existing_deliveries == {}:
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = PyObject_RichCompare(__pyx_v_existing_deliveries, __pyx_t_9, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L14; }
+5044: type_deliveries[list_member] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5044, __pyx_L1_error)
5045: else:
+5046: type_deliveries[list_member] = existing_deliveries[list_member]
/*else*/ {
if (unlikely(__pyx_v_existing_deliveries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5046, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_existing_deliveries, __pyx_v_list_member); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_list_member, __pyx_t_6) < 0)) __PYX_ERR(0, 5046, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_L14:;
+5047: canal.recovery_flow_frac[list_member] = np.ones(canal_size)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5047, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_list_member, __pyx_t_6) < 0)) __PYX_ERR(0, 5047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5048:
5049: #canal priority
+5050: priority_list = self.canal_priority[canal.name]
if (unlikely(__pyx_v_self->canal_priority == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5050, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_priority, __pyx_v_canal->name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5050, __pyx_L1_error)
__pyx_v_priority_list = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
5051: #contracts on this canal
+5052: contract_list = self.canal_contract[contract_canal]
if (unlikely(__pyx_v_self->canal_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5052, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_contract, __pyx_v_contract_canal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5052, __pyx_L1_error)
__pyx_v_contract_list = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
5053:
5054: #MAIN SEARCH LOOP - within the canal range identified above, search through
5055: #the objects in self.canal_district to determine the total demand on the canal
5056: #(divided by demand 'type')
5057:
+5058: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5058, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5058, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5058, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5059: district_obj.private_demand = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_district_obj->private_demand); __Pyx_DECREF(__pyx_v_district_obj->private_demand); __pyx_v_district_obj->private_demand = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+5060: district_obj.private_delivery = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_district_obj->private_delivery); __Pyx_DECREF(__pyx_v_district_obj->private_delivery); __pyx_v_district_obj->private_delivery = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+5061: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5061, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5061, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5061, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5062: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5062, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5062, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5062, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5062, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5063: # district_obj = self.district_keys[district_key]
+5064: private_demand_constraint = private_obj.find_node_demand(contract_list,search_type, district_key)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_4, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_4, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_4, __pyx_v_district_key); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_private_demand_constraint = __pyx_t_13;
+5065: self.district_keys[district_key].private_demand[private_obj.key] = private_demand_constraint
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5065, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 5065, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5066: self.district_keys[district_key].private_delivery[private_obj.key] = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district_key)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_8, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_8, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_15 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_4, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_4, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_4, __pyx_v_district_key); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_15, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5066, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 5066, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5067: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5067, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5067, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5067, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5067, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5068: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5068, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5068, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5068, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5068, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5069: # district_obj = self.district_keys[district_key]
+5070: private_demand_constraint = private_obj.find_node_demand(contract_list,search_type, district_key)
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_8 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_v_district_key); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_private_demand_constraint = __pyx_t_13;
+5071: self.district_keys[district_key].private_demand[private_obj.key] = private_demand_constraint
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5071, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5072: self.district_keys[district_key].private_delivery[private_obj.key] = private_obj.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district_key)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[7] = {__pyx_t_9, __pyx_t_15, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_12, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[7] = {__pyx_t_9, __pyx_t_15, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_12, __pyx_v_district_key}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_14 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_v_contract_list); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_v_district_key); __Pyx_GIVEREF(__pyx_v_district_key); PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_v_district_key); __pyx_t_15 = 0; __pyx_t_12 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_self->district_keys == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5072, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_private_obj->key, __pyx_t_7) < 0)) __PYX_ERR(0, 5072, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5073:
+5074: for canal_loc in canal_range:
if (likely(PyList_CheckExact(__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_v_canal_range)) { __pyx_t_3 = __pyx_v_canal_range; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_16 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_canal_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5074, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5074, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5074, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_16(__pyx_t_3); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5074, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5074, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_canal_loc = __pyx_t_4; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5075: if self.canal_district[canal.name][canal_loc].is_District == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5075, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_District); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5075, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L27;
}
+5076: district_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5076, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5076, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5076, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5076, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+5077: demand_constraint = 0.0
__pyx_v_demand_constraint = 0.0;
5078:
5079: #find demand at the node
5080: #partial delivery is used if the district recieves less than full daily demand due to projected contract allocations being lower than expected remaining annual demand
5081: #find district demand at the node
+5082: if search_type == "recovery":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5082, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L28; }
+5083: demand_constraint = district_obj.find_node_output()
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_7); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_demand_constraint = __pyx_t_13;
5084: else:
+5085: demand_constraint = district_obj.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
/*else*/ {
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_14, __pyx_t_8};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_14, __pyx_t_8};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} else
#endif
{
__pyx_t_15 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12); __pyx_t_12 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_4, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_4, __pyx_t_8);
__pyx_t_14 = 0;
__pyx_t_8 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_15, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5085, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_demand_constraint = __pyx_t_13;
}
__pyx_L28:;
+5086: self.find_node_demand_district(district_obj, canal, canal_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5086, __pyx_L1_error) }
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_district(__pyx_v_self, __pyx_v_district_obj, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_v_toggle_district_recharge);
+5087: canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5087, __pyx_L1_error) } __pyx_t_14 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_t_15, __pyx_v_flow_dir, __pyx_t_8, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_t_15, __pyx_v_flow_dir, __pyx_t_8, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_12 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_4, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_4, __pyx_v_type_list); __pyx_t_15 = 0; __pyx_t_8 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5088:
+5089: elif self.canal_district[canal.name][canal_loc].is_Waterbank == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5089, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5089, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_1) {
/* … */
goto __pyx_L27;
}
+5090: waterbank_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5090, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 5090, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_6));
__pyx_t_6 = 0;
+5091: demand_constraint = 0.0
__pyx_v_demand_constraint = 0.0;
+5092: self.find_node_demand_bank(waterbank_obj, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5092, __pyx_L1_error) }
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_bank(__pyx_v_self, __pyx_v_waterbank_obj, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list);
5093: #once all member demands/requests/priorities have been established, we can determine how much of each type of demand can be sent to the bank (b/c of turnout space)
+5094: if search_type == 'recovery':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5094, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L29; }
+5095: current_recovery = 0.0
__pyx_v_current_recovery = 0.0;
+5096: for participant_key in waterbank_obj.participant_list:
if (unlikely(__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5096, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5096, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5097: current_recovery += waterbank_obj.recovery_use[participant_key]
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_current_recovery); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_waterbank_obj->recovery_use == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5097, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->recovery_use, __pyx_v_participant_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5097, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_current_recovery = __pyx_t_13;
+5098: demand_constraint = waterbank_obj.recovery - current_recovery
__pyx_v_demand_constraint = (__pyx_v_waterbank_obj->recovery - __pyx_v_current_recovery);
5099: else:
+5100: current_storage = 0.0
/*else*/ {
__pyx_v_current_storage = 0.0;
+5101: for participant_key in waterbank_obj.participant_list:
if (unlikely(__pyx_v_waterbank_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5101, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_waterbank_obj->participant_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5101, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5101, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5102: current_storage += waterbank_obj.storage[participant_key]
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_current_storage); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_waterbank_obj->storage == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5102, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_waterbank_obj->storage, __pyx_v_participant_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_current_storage = __pyx_t_13;
+5103: demand_constraint = waterbank_obj.tot_storage - current_storage
__pyx_v_demand_constraint = (__pyx_v_waterbank_obj->tot_storage - __pyx_v_current_storage);
+5104: self.find_node_demand_bank(waterbank_obj, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5104, __pyx_L1_error) }
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_bank(__pyx_v_self, __pyx_v_waterbank_obj, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list);
}
__pyx_L29:;
+5105: canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5105, __pyx_L1_error) } __pyx_t_15 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_15, __pyx_t_12, __pyx_v_flow_dir, __pyx_t_8, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_15, __pyx_t_12, __pyx_v_flow_dir, __pyx_t_8, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_14 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15); __pyx_t_15 = NULL; } __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_v_type_list); __pyx_t_12 = 0; __pyx_t_8 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5106:
+5107: elif self.canal_district[canal.name][canal_loc].is_Canal == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5107, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5107, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5107, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5107, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5107, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5107, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
/* … */
}
__pyx_L27:;
+5108: canal_obj = self.canal_district[canal.name][canal_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5108, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5108, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5108, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 5108, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_6));
__pyx_t_6 = 0;
+5109: demand_constraint = 0.0 #find if the new canal can be accessed from the current canal
__pyx_v_demand_constraint = 0.0;
+5110: if canal.turnout[flow_dir][canal_loc] > 0.0:
if (unlikely(__pyx_v_canal->turnout == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5110, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout, __pyx_v_flow_dir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L34;
}
5111: #if it can, which way does the water flow onto the new canal
+5112: new_flow_dir = canal.flow_directions[flow_type][canal_obj.name]
if (unlikely(__pyx_v_canal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5112, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_canal->flow_directions, __pyx_v_flow_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5112, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_v_canal_obj->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5112, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5112, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_new_flow_dir, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
5113: #calculate the demands for this whole canal by recursively calling this function again, but with the new canal input parameters
+5114: available_to_canal = {}
__pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF_SET(__pyx_v_available_to_canal, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0;
+5115: if canal_obj.recovery_feeder:
__pyx_t_2 = (__pyx_v_canal_obj->recovery_feeder != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L35;
}
+5116: for zz in type_deliveries:
__pyx_t_11 = 0;
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_17), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_17, &__pyx_t_11, &__pyx_t_6, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5116, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+5117: available_to_canal[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5117, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5118: elif search_type == 'recovery':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5118, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L35; }
+5119: for zz in type_deliveries:
__pyx_t_17 = 0;
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_11, &__pyx_t_17, &__pyx_t_6, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+5120: available_to_canal[zz] = type_deliveries[zz]
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_t_6) < 0)) __PYX_ERR(0, 5120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5121: else:
+5122: for zz in type_deliveries:
/*else*/ {
__pyx_t_11 = 0;
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_17), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5122, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_17, &__pyx_t_11, &__pyx_t_6, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5122, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5122, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+5123: available_to_canal[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5123, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_L35:;
5124:
+5125: canal_demands = self.search_canal_demand(dowy, canal_obj, canal.key, contract_canal, new_flow_dir,flow_type,wateryear,search_type, available_to_canal)
__pyx_t_7 = __pyx_v_canal->key;
__Pyx_INCREF(__pyx_t_7);
__pyx_t_6 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->search_canal_demand(__pyx_v_self, __pyx_v_dowy, __pyx_v_canal_obj, ((PyObject*)__pyx_t_7), __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_available_to_canal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5125, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_canal_demands, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
5126: #check to see all demands can be met using the turnout space
+5127: total_demand = 0.0
__pyx_v_total_demand = 0.0;
+5128: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5128, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5128, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5128, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5129: canal.demand[zz][canal_loc] = canal_demands[zz]
if (unlikely(__pyx_v_canal_demands == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5129, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5129, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(__Pyx_SetItemInt(__pyx_t_14, __pyx_v_canal_loc, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5129, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5130: total_demand += canal_demands[zz]
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_canal_demands == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5130, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_v_zz); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_total_demand = __pyx_t_13;
+5131: canal.find_turnout_adjustment(total_demand, flow_dir, canal_loc, type_list)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5131, __pyx_L1_error) } __pyx_t_12 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_14, __pyx_v_flow_dir, __pyx_t_7, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_14, __pyx_v_flow_dir, __pyx_t_7, __pyx_v_type_list}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_15 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_4, __pyx_v_type_list); __pyx_t_14 = 0; __pyx_t_7 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_15, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5132: else:
+5133: for zz in type_list:
/*else*/ {
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5133, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5133, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5133, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5133, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_L34:;
+5134: canal.demand[zz][canal_loc] = 0.0
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5134, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_v_canal_loc, __pyx_float_0_0, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5134, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5135:
5136: #sum demand at all canal nodes
+5137: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5137, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5137, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5137, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5138: type_deliveries[zz] += canal.demand[zz][canal_loc]
__Pyx_INCREF(__pyx_v_zz); __pyx_t_19 = __pyx_v_zz; __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5138, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_15, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_t_19, __pyx_t_15) < 0)) __PYX_ERR(0, 5138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5139: if search_type == "recovery":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5139, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+5140: if self.canal_district[canal.name][canal_loc].is_District == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5140, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5140, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_15 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5140, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_is_District); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5140, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5140, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5140, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_2) {
/* … */
}
+5141: if district_obj.in_leiu_banking:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5141, __pyx_L1_error) }
__pyx_t_2 = (__pyx_v_district_obj->in_leiu_banking != 0);
if (__pyx_t_2) {
/* … */
}
+5142: for participant_key in district_obj.participant_list:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5142, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5142, __pyx_L1_error)
}
__pyx_t_15 = __pyx_v_district_obj->participant_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_6); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5142, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+5143: if participant_key != district_obj.key:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5143, __pyx_L1_error) }
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_participant_key, __pyx_v_district_obj->key, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5143, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+5144: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5144, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5144, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5144, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_num_members = __pyx_t_4;
+5145: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5145, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_District); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5145, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_1) {
/* … */
goto __pyx_L54;
}
+5146: district_obj2 = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5146, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5146, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj2, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+5147: participant_obj = district_obj2
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj2)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj2));
+5148: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5148, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_1) {
/* … */
}
__pyx_L54:;
+5149: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5149, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5149, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_6));
__pyx_t_6 = 0;
+5150: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
5151:
5152: #find waterbank partner demand (i.e., recovery capacity of their ownership share)
+5153: demand_constraint, demand_constraint_by_contracts = district_obj.find_leiu_output(contract_list, district_obj.leiu_ownership[participant_key], participant_key, wateryear)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5153, __pyx_L1_error) }
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_leiu_output); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5153, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->leiu_ownership == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5153, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->leiu_ownership, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_12 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_contract_list, __pyx_t_8, __pyx_v_participant_key, __pyx_t_14};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_v_contract_list, __pyx_t_8, __pyx_v_participant_key, __pyx_t_14};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
{
__pyx_t_9 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_12); __pyx_t_12 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_t_8);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_4, __pyx_t_14);
__pyx_t_8 = 0;
__pyx_t_14 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
PyObject* sequence = __pyx_t_6;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5153, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_7 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_7 = PyList_GET_ITEM(sequence, 0);
__pyx_t_9 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx_t_9);
#else
__pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_14 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_10 = Py_TYPE(__pyx_t_14)->tp_iternext;
index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_14); if (unlikely(!__pyx_t_7)) goto __pyx_L55_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_14); if (unlikely(!__pyx_t_9)) goto __pyx_L55_unpacking_failed;
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_14), 2) < 0) __PYX_ERR(0, 5153, __pyx_L1_error)
__pyx_t_10 = NULL;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L56_unpacking_done;
__pyx_L55_unpacking_failed:;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_10 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 5153, __pyx_L1_error)
__pyx_L56_unpacking_done:;
}
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5153, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (!(likely(PyList_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5153, __pyx_L1_error)
__pyx_v_demand_constraint = __pyx_t_13;
__Pyx_XDECREF_SET(__pyx_v_demand_constraint_by_contracts, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
5154: #does this partner want recovery water?
+5155: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, district_obj.inleiubanked[participant_key], district_obj.inleiucap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5155, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5155, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5155, __pyx_L1_error)
}
__pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5155, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5155, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_14, __pyx_t_8, __pyx_t_12, __pyx_t_20};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_14, __pyx_t_8, __pyx_t_12, __pyx_t_20};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_4, __pyx_t_7);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_4, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_4, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_4, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_4, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_4, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_4, __pyx_t_20);
__pyx_t_7 = 0;
__pyx_t_14 = 0;
__pyx_t_8 = 0;
__pyx_t_12 = 0;
__pyx_t_20 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5155, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_deliveries = __pyx_t_13;
5156: #what is their priority over the water/canal space?
+5157: priority_bank_space = district_obj.find_leiu_priority_space(demand_constraint, num_members, participant_key, 0, search_type)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5157, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_12 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[6] = {__pyx_t_12, __pyx_t_22, __pyx_t_20, __pyx_v_participant_key, __pyx_int_0, __pyx_v_search_type};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[6] = {__pyx_t_12, __pyx_t_22, __pyx_t_20, __pyx_v_participant_key, __pyx_int_0, __pyx_v_search_type};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_8 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_12); __pyx_t_12 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_t_22);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_t_20);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_v_participant_key);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_4, __pyx_int_0);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_4, __pyx_v_search_type);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5157, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_priority_bank_space = __pyx_t_13;
5158:
+5159: priorities = district_obj.set_demand_priority("N/A", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A")
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5159, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_12 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[8] = {__pyx_t_12, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_8, __pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[8] = {__pyx_t_12, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_8, __pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_14 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_kp_u_N_A);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_t_20);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_t_22);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_v_search_type);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_4, __pyx_kp_u_N_A);
__pyx_t_8 = 0;
__pyx_t_20 = 0;
__pyx_t_22 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 5159, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
5160: #need to adjust the water request to account for the banking partner share of the turnout
+5161: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5161, __pyx_L1_error) }
__pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5161, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5161, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5161, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5162: #paper trade recovery is equal to
+5163: paper_amount = priorities[zz]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5163, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5163, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5163, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_paper_amount = __pyx_t_13;
5164: # direct_amount = 0.0
5165: # contract_frac_list = np.zeros(len(district_obj.contract_list))
+5166: participant_obj.get_paper_exchange(paper_amount, district_obj.contract_list, demand_constraint_by_contracts, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5166, __pyx_L1_error) }
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_get_paper_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5166, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_8 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_14, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_22, __pyx_v_district_obj->contract_list, __pyx_v_demand_constraint_by_contracts, __pyx_t_20};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_22, __pyx_v_district_obj->contract_list, __pyx_v_demand_constraint_by_contracts, __pyx_t_20};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_12 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__pyx_t_8) {
__Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __pyx_t_8 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_4, __pyx_t_22);
__Pyx_INCREF(__pyx_v_district_obj->contract_list);
__Pyx_GIVEREF(__pyx_v_district_obj->contract_list);
PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_4, __pyx_v_district_obj->contract_list);
__Pyx_INCREF(__pyx_v_demand_constraint_by_contracts);
__Pyx_GIVEREF(__pyx_v_demand_constraint_by_contracts);
PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_4, __pyx_v_demand_constraint_by_contracts);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_4, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5167: district_obj.adjust_exchange(paper_amount, participant_key, wateryear)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5167, __pyx_L1_error) }
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_adjust_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_14);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_14, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_12, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_12, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_8 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_t_12);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_4, __pyx_t_20);
__pyx_t_12 = 0;
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5167, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5168: district_obj.give_paper_exchange(paper_amount, district_obj.contract_list, demand_constraint_by_contracts, wateryear, district_obj.key)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5168, __pyx_L1_error) }
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_give_paper_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5168, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5168, __pyx_L1_error) }
__pyx_t_12 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_14, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[6] = {__pyx_t_12, __pyx_t_8, __pyx_v_district_obj->contract_list, __pyx_v_demand_constraint_by_contracts, __pyx_t_20, __pyx_v_district_obj->key};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
PyObject *__pyx_temp[6] = {__pyx_t_12, __pyx_t_8, __pyx_v_district_obj->contract_list, __pyx_v_demand_constraint_by_contracts, __pyx_t_20, __pyx_v_district_obj->key};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_12) {
__Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __pyx_t_12 = NULL;
}
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_4, __pyx_t_8);
__Pyx_INCREF(__pyx_v_district_obj->contract_list);
__Pyx_GIVEREF(__pyx_v_district_obj->contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_4, __pyx_v_district_obj->contract_list);
__Pyx_INCREF(__pyx_v_demand_constraint_by_contracts);
__Pyx_GIVEREF(__pyx_v_demand_constraint_by_contracts);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_4, __pyx_v_demand_constraint_by_contracts);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_4, __pyx_t_20);
__Pyx_INCREF(__pyx_v_district_obj->key);
__Pyx_GIVEREF(__pyx_v_district_obj->key);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_4, __pyx_v_district_obj->key);
__pyx_t_8 = 0;
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_22, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5168, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
5169:
5170: #for non-bank district nodes, they can accept recovery water. we want to find how much water they can accept (based on their ability to make paper trades using the contracts in contract_list, then determine how much of the recovery water up-canal, can be delivered here as a 'paper' trade, and then how much additional water can be delivered here 'directly' (i.e., the pumping out of the water bank is going to the district that owns capacity in the water bank, so no paper trades needed - this is useful if there is no surface water storage, but a district still wants water from its water bank (and can get that water directly, from the run of the canal)
+5171: total_district_demand = district_obj.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5171, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_22 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_9, __pyx_t_14};
__pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_9, __pyx_t_14};
__pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_4, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_4, __pyx_v_search_type);
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_4, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_4, __pyx_t_14);
__pyx_t_9 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_20, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5171, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_v_total_district_demand = __pyx_t_13;
+5172: total_available = 0.0
__pyx_v_total_available = 0.0;
+5173: existing_canal_space = canal.capacity[flow_dir][canal_loc]*cfs_tafd - canal.flow[canal_loc]
if (unlikely(__pyx_v_canal->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5173, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_canal->capacity, __pyx_v_flow_dir); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_15, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_20 = PyNumber_Multiply(__pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(__pyx_v_canal->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5173, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_GetItemInt_List(__pyx_v_canal->flow, __pyx_v_canal_loc, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_6 = PyNumber_Subtract(__pyx_t_20, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5173, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_existing_canal_space = __pyx_t_13;
+5174: for delivery_type in type_deliveries:
__pyx_t_17 = 0;
__pyx_t_15 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5174, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_15;
__pyx_t_15 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_11, &__pyx_t_17, &__pyx_t_15, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5174, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (!(likely(PyUnicode_CheckExact(__pyx_t_15))||((__pyx_t_15) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_15)->tp_name), 0))) __PYX_ERR(0, 5174, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_delivery_type, ((PyObject*)__pyx_t_15));
__pyx_t_15 = 0;
+5175: total_available += type_deliveries[delivery_type]
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_total_available); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_delivery_type); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_20); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_total_available = __pyx_t_13; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5176: total_exchange = 0.0
__pyx_v_total_exchange = 0.0;
+5177: for contract_obj in contract_list:
if (unlikely(__pyx_v_contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5177, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_contract_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_14); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5177, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5177, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5178: total_exchange += district_obj.projected_supply[contract_obj.name]
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_total_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5178, __pyx_L1_error) } if (unlikely(__pyx_v_district_obj->projected_supply == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5178, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->projected_supply, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_20); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_total_exchange = __pyx_t_13;
+5179: if district_obj.has_private:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5179, __pyx_L1_error) }
__pyx_t_1 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_1) {
/* … */
}
+5180: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5180, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_15); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5180, __pyx_L1_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5180, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5180, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_15));
__pyx_t_15 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5181: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5181, __pyx_L1_error)
}
__pyx_t_15 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_15); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_15)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_20 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_17); __Pyx_INCREF(__pyx_t_20); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5181, __pyx_L1_error)
#else
__pyx_t_20 = PySequence_ITEM(__pyx_t_15, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5181, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_20))||((__pyx_t_20) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_20)->tp_name), 0))) __PYX_ERR(0, 5181, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_20));
__pyx_t_20 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+5182: if district_key == district_obj.key:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5182, __pyx_L1_error) }
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_v_district_obj->key, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5182, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+5183: for contract_obj in contract_list:
if (unlikely(__pyx_v_contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5183, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_contract_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_23 = 0;
for (;;) {
if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_23); __Pyx_INCREF(__pyx_t_14); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 5183, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_20, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5183, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5184: total_exchange += private_obj.projected_supply[district_obj.key][contract_obj.name]
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_total_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (unlikely(__pyx_v_private_obj->projected_supply == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5184, __pyx_L1_error) } if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5184, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->projected_supply, __pyx_v_district_obj->key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_total_exchange = __pyx_t_13;
+5185: paper_recovery = min(total_district_demand, total_available, total_exchange)
__pyx_t_13 = __pyx_v_total_available;
__pyx_t_24 = __pyx_v_total_exchange;
__pyx_t_25 = __pyx_v_total_district_demand;
if (((__pyx_t_13 < __pyx_t_25) != 0)) {
__pyx_t_26 = __pyx_t_13;
} else {
__pyx_t_26 = __pyx_t_25;
}
__pyx_t_25 = __pyx_t_26;
if (((__pyx_t_24 < __pyx_t_25) != 0)) {
__pyx_t_26 = __pyx_t_24;
} else {
__pyx_t_26 = __pyx_t_25;
}
__pyx_v_paper_recovery = __pyx_t_26;
+5186: private_deliveries = 0.0
__pyx_v_private_deliveries = 0.0;
+5187: if district_obj.has_private:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5187, __pyx_L1_error) }
__pyx_t_2 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_2) {
/* … */
}
+5188: for private_key in district_obj.private_demand:
__pyx_t_11 = 0;
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5188, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->private_demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5188, __pyx_L1_error)
}
__pyx_t_15 = __Pyx_dict_iterator(__pyx_v_district_obj->private_demand, 1, ((PyObject *)NULL), (&__pyx_t_17), (&__pyx_t_4)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_15;
__pyx_t_15 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_17, &__pyx_t_11, &__pyx_t_15, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (!(likely(PyUnicode_CheckExact(__pyx_t_15))||((__pyx_t_15) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_15)->tp_name), 0))) __PYX_ERR(0, 5188, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_key, ((PyObject*)__pyx_t_15));
__pyx_t_15 = 0;
+5189: private_deliveries += min(district_obj.private_demand[private_key], district_obj.private_delivery[private_key])
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_private_deliveries); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5189, __pyx_L1_error) } if (unlikely(__pyx_v_district_obj->private_delivery == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5189, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->private_delivery, __pyx_v_private_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5189, __pyx_L1_error) } if (unlikely(__pyx_v_district_obj->private_demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5189, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->private_demand, __pyx_v_private_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_14 = PyObject_RichCompare(__pyx_t_20, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5189, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_2) { __Pyx_INCREF(__pyx_t_20); __pyx_t_22 = __pyx_t_20; } else { __Pyx_INCREF(__pyx_t_9); __pyx_t_22 = __pyx_t_9; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_22); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_private_deliveries = __pyx_t_26; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5190: direct_recovery = max(min(total_available - paper_recovery, district_obj.dailydemand[0]*district_obj.seepage*district_obj.surface_water_sa + private_deliveries - paper_recovery), 0.0)
__pyx_t_26 = 0.0;
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5190, __pyx_L1_error) }
if (unlikely(__pyx_v_district_obj->dailydemand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5190, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->dailydemand, __pyx_int_0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5190, __pyx_L1_error) }
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_district_obj->seepage); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = PyNumber_Multiply(__pyx_t_6, __pyx_t_20); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5190, __pyx_L1_error) }
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_district_obj->surface_water_sa); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_22, __pyx_t_20); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_private_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = PyNumber_Add(__pyx_t_6, __pyx_t_20); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_paper_recovery); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_6 = PyNumber_Subtract(__pyx_t_22, __pyx_t_20); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_13 = (__pyx_v_total_available - __pyx_v_paper_recovery);
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_6, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_2) {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_20 = __pyx_t_6;
} else {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_20 = __pyx_t_15;
__pyx_t_15 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_INCREF(__pyx_t_20);
__pyx_t_6 = __pyx_t_20;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_26); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_22 = PyObject_RichCompare(__pyx_t_15, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_2) {
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_26); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __pyx_t_22;
__pyx_t_22 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_20 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5190, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_direct_recovery = __pyx_t_26;
5191: #find capacity constraints between this location and the up-canal waterbanks
+5192: if flow_dir == "normal":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5192, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L74; }
+5193: lookback_range = range(starting_point, canal_loc)
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_6); __pyx_t_20 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_6); __pyx_t_6 = 0;
+5194: elif flow_dir == "reverse":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5194, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ } __pyx_L74:;
+5195: lookback_range = range(starting_point, canal_loc, -1)
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_canal_loc); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = PyTuple_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_22); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_20, 2, __pyx_int_neg_1); __pyx_t_6 = 0; __pyx_t_22 = 0; __pyx_t_22 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_20, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_22); __pyx_t_22 = 0;
+5196: max_flow = canal.capacity[flow_dir][starting_point]*cfs_tafd - canal.flow[starting_point]
if (unlikely(__pyx_v_canal->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5196, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_canal->capacity, __pyx_v_flow_dir); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_starting_point, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_20, __pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__pyx_v_canal->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5196, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_GetItemInt_List(__pyx_v_canal->flow, __pyx_v_starting_point, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = PyNumber_Subtract(__pyx_t_6, __pyx_t_22); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_max_flow = __pyx_t_26;
+5197: for lookback_loc in lookback_range:
if (unlikely(!__pyx_v_lookback_range)) { __Pyx_RaiseUnboundLocalError("lookback_range"); __PYX_ERR(0, 5197, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) {
__pyx_t_20 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_20); __pyx_t_17 = 0;
__pyx_t_27 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_27 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5197, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_27)) {
if (likely(PyList_CheckExact(__pyx_t_20))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_17); __Pyx_INCREF(__pyx_t_22); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5197, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_20, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_17); __Pyx_INCREF(__pyx_t_22); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5197, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_20, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
}
} else {
__pyx_t_22 = __pyx_t_27(__pyx_t_20);
if (unlikely(!__pyx_t_22)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5197, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_22);
}
__Pyx_XDECREF_SET(__pyx_v_lookback_loc, __pyx_t_22);
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5198: max_flow = min(canal.capacity[flow_dir][lookback_loc]*cfs_tafd - canal.flow[lookback_loc], max_flow)
__pyx_t_26 = __pyx_v_max_flow;
if (unlikely(__pyx_v_canal->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5198, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_canal->capacity, __pyx_v_flow_dir); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_15 = PyNumber_Multiply(__pyx_t_6, __pyx_t_22); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(__pyx_v_canal->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5198, __pyx_L1_error)
}
__pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_canal->flow, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_6 = PyNumber_Subtract(__pyx_t_15, __pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_26); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_15, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_2) {
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_26); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_22 = __pyx_t_9;
__pyx_t_9 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_22 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_v_max_flow = __pyx_t_26;
+5199: direct_recovery = min(max(max_flow - paper_recovery, 0.0), direct_recovery)
__pyx_t_26 = __pyx_v_direct_recovery;
__pyx_t_13 = 0.0;
__pyx_t_24 = (__pyx_v_max_flow - __pyx_v_paper_recovery);
if (((__pyx_t_13 > __pyx_t_24) != 0)) {
__pyx_t_25 = __pyx_t_13;
} else {
__pyx_t_25 = __pyx_t_24;
}
__pyx_t_13 = __pyx_t_25;
if (((__pyx_t_26 < __pyx_t_13) != 0)) {
__pyx_t_25 = __pyx_t_26;
} else {
__pyx_t_25 = __pyx_t_13;
}
__pyx_v_direct_recovery = __pyx_t_25;
+5200: paper_recovery = min(paper_recovery, max_flow)
__pyx_t_25 = __pyx_v_max_flow;
__pyx_t_26 = __pyx_v_paper_recovery;
if (((__pyx_t_25 < __pyx_t_26) != 0)) {
__pyx_t_13 = __pyx_t_25;
} else {
__pyx_t_13 = __pyx_t_26;
}
__pyx_v_paper_recovery = __pyx_t_13;
5201: #find the % of total 'recovery demand' at each water bank that can be fufilled at this district demand node
+5202: paper_fractions = {}
__pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_XDECREF_SET(__pyx_v_paper_fractions, ((PyObject*)__pyx_t_20)); __pyx_t_20 = 0;
+5203: committed = 0.0
__pyx_v_committed = 0.0;
+5204: for zz in type_list:
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5204, __pyx_L1_error) }
__pyx_t_20 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_22 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_17); __Pyx_INCREF(__pyx_t_22); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5204, __pyx_L1_error)
#else
__pyx_t_22 = PySequence_ITEM(__pyx_t_20, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_22))||((__pyx_t_22) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_22)->tp_name), 0))) __PYX_ERR(0, 5204, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_22));
__pyx_t_22 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5205: if type_deliveries[zz] > 0.0:
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_6 = PyObject_RichCompare(__pyx_t_22, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L79; }
+5206: paper_fractions[zz] = min((paper_recovery - committed)/type_deliveries[zz], 1.0)
__pyx_t_13 = 1.0;
__pyx_t_6 = PyFloat_FromDouble((__pyx_v_paper_recovery - __pyx_v_committed)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_15 = PyObject_RichCompare(__pyx_t_6, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (__pyx_t_2) {
__pyx_t_15 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_22 = __pyx_t_15;
__pyx_t_15 = 0;
} else {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_22 = __pyx_t_9;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_22;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_paper_fractions, __pyx_v_zz, __pyx_t_9) < 0)) __PYX_ERR(0, 5206, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5207: committed += min(paper_recovery - committed, type_deliveries[zz])
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_committed); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_13 = (__pyx_v_paper_recovery - __pyx_v_committed); __pyx_t_6 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = PyObject_RichCompare(__pyx_t_22, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_2) { __Pyx_INCREF(__pyx_t_22); __pyx_t_15 = __pyx_t_22; } else { __pyx_t_14 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __pyx_t_14; __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_committed = __pyx_t_13;
5208: else:
+5209: paper_fractions[zz] = 0.0
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_paper_fractions, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5209, __pyx_L1_error)
+5210: committed += min(paper_recovery - committed, type_deliveries[zz])
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_committed); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_13 = (__pyx_v_paper_recovery - __pyx_v_committed); __pyx_t_14 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = PyObject_RichCompare(__pyx_t_15, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { __Pyx_INCREF(__pyx_t_15); __pyx_t_9 = __pyx_t_15; } else { __pyx_t_6 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __pyx_t_6; __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_committed = __pyx_t_13; } __pyx_L79:;
+5211: location_delivery = 0.0
__pyx_v_location_delivery = 0.0;
+5212: if committed > 0.0:
__pyx_t_2 = ((__pyx_v_committed > 0.0) != 0);
if (__pyx_t_2) {
/* … */
}
+5213: if flow_dir == "normal":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5213, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L81; }
+5214: lookback_range = range(starting_point, canal_loc + 1)
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_15 = __Pyx_PyInt_From_long((__pyx_v_canal_loc + 1)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15); __pyx_t_20 = 0; __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_9, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_15); __pyx_t_15 = 0;
+5215: elif flow_dir == "reverse":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5215, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ } __pyx_L81:;
+5216: lookback_range = range(starting_point, canal_loc - 1, -1)
__pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = __Pyx_PyInt_From_long((__pyx_v_canal_loc - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_20 = PyTuple_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_9); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_20, 2, __pyx_int_neg_1); __pyx_t_15 = 0; __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_9); __pyx_t_9 = 0;
5217: #search for waterbanks
+5218: location_delivery, total_paper = self.delivery_recovery(contract_list, canal, lookback_range, starting_point, paper_fractions, direct_recovery, flow_dir, type_list, priority_list, contract_canal, district_obj.key, dowy, wateryear)
if (unlikely(!__pyx_v_lookback_range)) { __Pyx_RaiseUnboundLocalError("lookback_range"); __PYX_ERR(0, 5218, __pyx_L1_error) }
if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5218, __pyx_L1_error) }
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5218, __pyx_L1_error) }
__pyx_t_9 = __pyx_v_district_obj->key;
__Pyx_INCREF(__pyx_t_9);
__pyx_t_28 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->delivery_recovery(__pyx_v_self, __pyx_v_contract_list, __pyx_v_canal, __pyx_v_lookback_range, __pyx_v_starting_point, __pyx_v_paper_fractions, __pyx_v_direct_recovery, __pyx_v_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, ((PyObject*)__pyx_t_9), __pyx_v_dowy, __pyx_v_wateryear);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_13 = __pyx_t_28.f0;
__pyx_t_25 = __pyx_t_28.f1;
__pyx_v_location_delivery = __pyx_t_13;
__pyx_v_total_paper = __pyx_t_25;
+5219: paper_delivery = district_obj.give_paper_trade(total_paper, contract_list, wateryear, district_obj.key)
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5219, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_give_paper_trade); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5219, __pyx_L1_error) }
__pyx_t_6 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_20);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_20, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_20)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_15, __pyx_v_contract_list, __pyx_t_22, __pyx_v_district_obj->key};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_15, __pyx_v_contract_list, __pyx_t_22, __pyx_v_district_obj->key};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_14 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6); __pyx_t_6 = NULL;
}
__Pyx_GIVEREF(__pyx_t_15);
PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_t_15);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_t_22);
__Pyx_INCREF(__pyx_v_district_obj->key);
__Pyx_GIVEREF(__pyx_v_district_obj->key);
PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_v_district_obj->key);
__pyx_t_15 = 0;
__pyx_t_22 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_14, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF_SET(__pyx_v_paper_delivery, __pyx_t_9);
__pyx_t_9 = 0;
+5220: location_delivery -= paper_delivery
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_20 = PyNumber_InPlaceSubtract(__pyx_t_9, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_location_delivery = __pyx_t_25;
+5221: total_paper -= paper_delivery
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_9 = PyNumber_InPlaceSubtract(__pyx_t_20, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5221, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_total_paper = __pyx_t_25;
+5222: if district_obj.has_private:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5222, __pyx_L1_error) }
__pyx_t_2 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_2) {
/* … */
}
+5223: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5223, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_20 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_17); __Pyx_INCREF(__pyx_t_20); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5223, __pyx_L1_error)
#else
__pyx_t_20 = PySequence_ITEM(__pyx_t_9, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5223, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5223, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_20));
__pyx_t_20 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5224: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5224, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_14 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_14); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5224, __pyx_L1_error)
#else
__pyx_t_14 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_14))||((__pyx_t_14) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_14)->tp_name), 0))) __PYX_ERR(0, 5224, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_14));
__pyx_t_14 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5225: if district_key == district_obj.key:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5225, __pyx_L1_error) }
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_v_district_obj->key, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5225, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+5226: paper_delivery = private_obj.give_paper_trade(total_paper, contract_list, wateryear, district_obj.key)
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_give_paper_trade); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5226, __pyx_L1_error) } __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_15, __pyx_v_contract_list, __pyx_t_6, __pyx_v_district_obj->key}; __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_15, __pyx_v_contract_list, __pyx_t_6, __pyx_v_district_obj->key}; __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_12 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_4, __pyx_v_contract_list); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_v_district_obj->key); __Pyx_GIVEREF(__pyx_v_district_obj->key); PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_4, __pyx_v_district_obj->key); __pyx_t_15 = 0; __pyx_t_6 = 0; __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_12, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF_SET(__pyx_v_paper_delivery, __pyx_t_14); __pyx_t_14 = 0;
+5227: location_delivery -= paper_delivery
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_22 = PyNumber_InPlaceSubtract(__pyx_t_14, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_v_location_delivery = __pyx_t_25;
+5228: total_paper -= paper_delivery
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_22, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5228, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_total_paper = __pyx_t_25;
5229:
+5230: location_delivery -= district_obj.record_direct_delivery(location_delivery, wateryear)
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5230, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_record_direct_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_6 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_22, __pyx_t_12}; __pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_22, __pyx_t_12}; __pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_t_12); __pyx_t_22 = 0; __pyx_t_12 = 0; __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5230, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_location_delivery = __pyx_t_25;
5231:
+5232: if district_obj.has_private:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5232, __pyx_L1_error) }
__pyx_t_1 = (__pyx_v_district_obj->has_private != 0);
if (__pyx_t_1) {
/* … */
}
+5233: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5233, __pyx_L1_error)
}
__pyx_t_14 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_14)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_20 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_17); __Pyx_INCREF(__pyx_t_20); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5233, __pyx_L1_error)
#else
__pyx_t_20 = PySequence_ITEM(__pyx_t_14, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
#endif
if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5233, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_20));
__pyx_t_20 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+5234: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5234, __pyx_L1_error)
}
__pyx_t_20 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_20); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_20)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5234, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5234, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5235: if district_key == district_obj.key:
if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5235, __pyx_L1_error) }
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_district_key, __pyx_v_district_obj->key, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5235, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+5236: location_delivery -= private_obj.record_direct_delivery(location_delivery, wateryear, district_obj.key)
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_private_obj), __pyx_n_s_record_direct_delivery); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(!__pyx_v_district_obj)) { __Pyx_RaiseUnboundLocalError("district_obj"); __PYX_ERR(0, 5236, __pyx_L1_error) } __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_22, __pyx_t_6, __pyx_v_district_obj->key}; __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_22, __pyx_t_6, __pyx_v_district_obj->key}; __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_v_district_obj->key); __Pyx_GIVEREF(__pyx_v_district_obj->key); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_4, __pyx_v_district_obj->key); __pyx_t_22 = 0; __pyx_t_6 = 0; __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_7, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_InPlaceSubtract(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_location_delivery = __pyx_t_25;
5237:
5238: #once all canal nodes have been searched, we can check to make sure the demands aren't bigger than the canal capacity, then adjust our demands
5239: #type_deliveries = canal.capacity_adjust_demand(starting_point, canal_range, flow_dir, type_list)
+5240: if search_type == 'recovery':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5240, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+5241: if canal.recovery_feeder:
__pyx_t_1 = (__pyx_v_canal->recovery_feeder != 0);
if (__pyx_t_1) {
/* … */
}
+5242: return type_deliveries
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_type_deliveries); __pyx_r = __pyx_v_type_deliveries; goto __pyx_L0;
5243: else:
+5244: for zz in type_deliveries:
/*else*/ {
__pyx_t_5 = 0;
__pyx_t_14 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_17), (&__pyx_t_4)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_14;
__pyx_t_14 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_17, &__pyx_t_5, &__pyx_t_14, NULL, NULL, __pyx_t_4);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(PyUnicode_CheckExact(__pyx_t_14))||((__pyx_t_14) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_14)->tp_name), 0))) __PYX_ERR(0, 5244, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_14));
__pyx_t_14 = 0;
+5245: type_deliveries[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5245, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5246: return type_deliveries
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_type_deliveries); __pyx_r = __pyx_v_type_deliveries; goto __pyx_L0; }
5247: else:
+5248: return type_deliveries
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_type_deliveries);
__pyx_r = __pyx_v_type_deliveries;
goto __pyx_L0;
}
5249:
5250:
5251:
+5252: cdef (double, double) delivery_recovery(self, list contract_list, Canal canal, lookback_range, int starting_point, dict paper_fractions, double direct_recovery, str flow_dir, list type_list, list priority_list, str contract_canal, str delivery_loc_name, int dowy, int wateryear):
static __pyx_ctuple_double__and_double __pyx_f_11calfews_src_8model_cy_5Model_delivery_recovery(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_contract_list, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, PyObject *__pyx_v_lookback_range, int __pyx_v_starting_point, PyObject *__pyx_v_paper_fractions, double __pyx_v_direct_recovery, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_type_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_delivery_loc_name, int __pyx_v_dowy, int __pyx_v_wateryear) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj2 = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal_obj = 0;
double __pyx_v_location_pumpout;
double __pyx_v_paper_amount;
double __pyx_v_demand_constraint;
double __pyx_v_sum_deliveries;
double __pyx_v_existing_canal_space;
double __pyx_v_new_flow;
double __pyx_v_available_flow;
double __pyx_v_total_paper;
CYTHON_UNUSED double __pyx_v_max_current_release;
double __pyx_v_deliveries;
double __pyx_v_priority_bank_space;
double __pyx_v_direct_amount;
double __pyx_v_actual_delivery;
double __pyx_v_current_recovery;
int __pyx_v_lookback_loc;
int __pyx_v_canal_backtrack;
int __pyx_v_toggle_district_recharge;
int __pyx_v_num_members;
int __pyx_v_counter_toggle;
int __pyx_v_new_canal_size;
int __pyx_v_new_starting_point;
PyObject *__pyx_v_zz = 0;
PyObject *__pyx_v_search_type = 0;
PyObject *__pyx_v_participant_key = 0;
PyObject *__pyx_v_district_key = 0;
PyObject *__pyx_v_new_flow_dir = 0;
PyObject *__pyx_v_new_prev_canal = 0;
PyObject *__pyx_v_running_type_deliveries = 0;
PyObject *__pyx_v_priorities = 0;
PyObject *__pyx_v_priority_turnout_adjusted = 0;
PyObject *__pyx_v_backtrack_range = NULL;
PyObject *__pyx_v_recovery_source = NULL;
PyObject *__pyx_v_participant_obj = NULL;
PyObject *__pyx_v_max_direct_recovery = NULL;
PyObject *__pyx_v_new_lookback_range = NULL;
__pyx_ctuple_double__and_double __pyx_r;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("delivery_recovery", 0);
__Pyx_TraceCall("delivery_recovery", __pyx_f[0], 5252, 0, __PYX_ERR(0, 5252, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_28);
__Pyx_WriteUnraisable("calfews_src.model_cy.Model.delivery_recovery", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__Pyx_pretend_to_initialize(&__pyx_r);
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj2);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_canal_obj);
__Pyx_XDECREF(__pyx_v_zz);
__Pyx_XDECREF(__pyx_v_search_type);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_new_flow_dir);
__Pyx_XDECREF(__pyx_v_new_prev_canal);
__Pyx_XDECREF(__pyx_v_running_type_deliveries);
__Pyx_XDECREF(__pyx_v_priorities);
__Pyx_XDECREF(__pyx_v_priority_turnout_adjusted);
__Pyx_XDECREF(__pyx_v_backtrack_range);
__Pyx_XDECREF(__pyx_v_recovery_source);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_XDECREF(__pyx_v_max_direct_recovery);
__Pyx_XDECREF(__pyx_v_new_lookback_range);
__Pyx_TraceReturn(Py_None, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
5253: cdef District district_obj, district_obj2
5254: cdef Private private_obj
5255: cdef Waterbank waterbank_obj
5256: cdef Canal canal_obj
5257: cdef double location_pumpout, paper_amount, demand_constraint, sum_deliveries, existing_canal_space, new_flow, available_flow, total_paper, max_current_release, \
5258: deliveries, priority_bank_space, direct_amount, actual_delivery, current_recovery
5259: cdef int lookback_loc, canal_backtrack, toggle_district_recharge, num_members, counter_toggle, new_canal_size, new_starting_point
5260: cdef str zz, search_type, participant_key, district_key, new_flow_dir, new_prev_canal
5261: cdef dict running_type_deliveries, priorities, priority_turnout_adjusted
5262:
+5263: running_type_deliveries = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_running_type_deliveries = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5264: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5264, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5264, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5264, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5265: running_type_deliveries[zz] = 0.0
if (unlikely(PyDict_SetItem(__pyx_v_running_type_deliveries, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5265, __pyx_L1_error)
5266:
+5267: sum_deliveries = 0.0
__pyx_v_sum_deliveries = 0.0;
+5268: for lookback_loc in lookback_range:
if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) { __pyx_t_1 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_4 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5268, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5268, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5268, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_4(__pyx_t_1); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5268, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_lookback_loc = __pyx_t_5; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5269: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5269, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5269, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5269, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5270: running_type_deliveries[zz] += canal.demand[zz][lookback_loc]
__Pyx_INCREF(__pyx_v_zz); __pyx_t_8 = __pyx_v_zz; __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5270, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(PyDict_SetItem(__pyx_v_running_type_deliveries, __pyx_t_8, __pyx_t_9) < 0)) __PYX_ERR(0, 5270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5271: sum_deliveries += canal.demand[zz][lookback_loc]
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_sum_deliveries); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__pyx_v_canal->demand == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5271, __pyx_L1_error) } __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_sum_deliveries = __pyx_t_11;
+5272: existing_canal_space = canal.capacity[flow_dir][lookback_loc]*cfs_tafd - canal.flow[lookback_loc]
if (unlikely(__pyx_v_canal->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5272, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->capacity, __pyx_v_flow_dir); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = PyNumber_Multiply(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_canal->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5272, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_canal->flow, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyNumber_Subtract(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5272, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_existing_canal_space = __pyx_t_11;
+5273: if sum_deliveries > existing_canal_space:
__pyx_t_12 = ((__pyx_v_sum_deliveries > __pyx_v_existing_canal_space) != 0);
if (__pyx_t_12) {
/* … */
}
+5274: if flow_dir == "normal":
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5274, __pyx_L1_error) __pyx_t_13 = (__pyx_t_12 != 0); if (__pyx_t_13) { /* … */ goto __pyx_L10; }
+5275: backtrack_range = range(starting_point, lookback_loc + 1)
__pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_lookback_loc + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __pyx_t_10 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_backtrack_range, __pyx_t_3); __pyx_t_3 = 0;
+5276: elif flow_dir == "reverse":
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5276, __pyx_L1_error) __pyx_t_12 = (__pyx_t_13 != 0); if (__pyx_t_12) { /* … */ } __pyx_L10:;
+5277: backtrack_range = range(starting_point, lookback_loc - 1, -1)
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_long((__pyx_v_lookback_loc - 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_7); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_int_neg_1); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_backtrack_range, __pyx_t_7); __pyx_t_7 = 0;
+5278: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5278, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_10); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5278, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5278, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_10)->tp_name), 0))) __PYX_ERR(0, 5278, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5279: for canal_backtrack in backtrack_range:
if (unlikely(!__pyx_v_backtrack_range)) { __Pyx_RaiseUnboundLocalError("backtrack_range"); __PYX_ERR(0, 5279, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_v_backtrack_range)) || PyTuple_CheckExact(__pyx_v_backtrack_range)) {
__pyx_t_10 = __pyx_v_backtrack_range; __Pyx_INCREF(__pyx_t_10); __pyx_t_14 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_14 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_backtrack_range); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5279, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_15 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5279, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_10))) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5279, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5279, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5279, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5279, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_15(__pyx_t_10);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5279, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5279, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_canal_backtrack = __pyx_t_5;
/* … */
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+5280: canal.recovery_flow_frac[zz][canal_backtrack] = min(max(min(existing_canal_space/running_type_deliveries[zz], 1.0), 0.0), canal.recovery_flow_frac[zz][canal_backtrack])
if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5280, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_canal_backtrack, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_11 = 0.0;
__pyx_t_16 = 1.0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_existing_canal_space); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_18 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = PyObject_RichCompare(__pyx_t_3, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_12) {
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_17 = __pyx_t_19;
__pyx_t_19 = 0;
} else {
__Pyx_INCREF(__pyx_t_18);
__pyx_t_17 = __pyx_t_18;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_18 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_19, __pyx_t_18, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_12) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_t_18);
__pyx_t_17 = __pyx_t_18;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_INCREF(__pyx_t_17);
__pyx_t_18 = __pyx_t_17;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_9, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5280, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_12) {
__Pyx_INCREF(__pyx_t_9);
__pyx_t_17 = __pyx_t_9;
} else {
__Pyx_INCREF(__pyx_t_18);
__pyx_t_17 = __pyx_t_18;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __pyx_t_17;
__Pyx_INCREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5280, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (unlikely(__Pyx_SetItemInt(__pyx_t_17, __pyx_v_canal_backtrack, __pyx_t_9, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5280, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5281: new_flow = min(running_type_deliveries[zz], existing_canal_space)
__pyx_t_11 = __pyx_v_existing_canal_space;
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_17 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_18 = PyObject_RichCompare(__pyx_t_17, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_12) {
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_9 = __pyx_t_18;
__pyx_t_18 = 0;
} else {
__Pyx_INCREF(__pyx_t_10);
__pyx_t_9 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5281, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_new_flow = __pyx_t_11;
+5282: existing_canal_space -= new_flow
__pyx_v_existing_canal_space = (__pyx_v_existing_canal_space - __pyx_v_new_flow);
5283:
5284: #Loop back through the canal looking for waterbank sources to make paper trades with
+5285: available_flow = 0.0
__pyx_v_available_flow = 0.0;
+5286: total_paper = 0.0
__pyx_v_total_paper = 0.0;
+5287: toggle_district_recharge = 0
__pyx_v_toggle_district_recharge = 0;
+5288: for lookback_loc in lookback_range:
if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) { __pyx_t_1 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_4 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5288, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5288, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5288, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_4(__pyx_t_1); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5288, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_lookback_loc = __pyx_t_5; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5289: location_pumpout = 0.0
__pyx_v_location_pumpout = 0.0;
5290:
+5291: if self.canal_district[canal.name][lookback_loc].is_District == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5291, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_District); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5291, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L17;
}
+5292: district_obj = self.canal_district[canal.name][lookback_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5292, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5292, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5292, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5292, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
+5293: recovery_source = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_recovery_source, ((PyObject *)__pyx_v_district_obj));
+5294: elif self.canal_district[canal.name][lookback_loc].is_Waterbank == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5294, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5294, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L17;
}
+5295: waterbank_obj = self.canal_district[canal.name][lookback_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5295, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5295, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 5295, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_7));
__pyx_t_7 = 0;
+5296: recovery_source = waterbank_obj
__Pyx_INCREF(((PyObject *)__pyx_v_waterbank_obj)); __Pyx_XDECREF_SET(__pyx_v_recovery_source, ((PyObject *)__pyx_v_waterbank_obj));
+5297: elif self.canal_district[canal.name][lookback_loc].is_Canal == 1:
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5297, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5297, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5297, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5297, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5297, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5297, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
}
__pyx_L17:;
+5298: canal_obj = self.canal_district[canal.name][lookback_loc]
if (unlikely(__pyx_v_self->canal_district == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5298, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district, __pyx_v_canal->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5298, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5298, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 5298, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_canal_obj, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_t_7));
__pyx_t_7 = 0;
+5299: recovery_source = canal_obj
__Pyx_INCREF(((PyObject *)__pyx_v_canal_obj)); __Pyx_XDECREF_SET(__pyx_v_recovery_source, ((PyObject *)__pyx_v_canal_obj));
5300:
+5301: search_type = "recovery"
__Pyx_INCREF(__pyx_n_u_recovery); __Pyx_XDECREF_SET(__pyx_v_search_type, __pyx_n_u_recovery);
+5302: max_current_release = 0.0
__pyx_v_max_current_release = 0.0;
+5303: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5303, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5303, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5303, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5304: max_current_release = canal.demand[zz][lookback_loc]*canal.recovery_flow_frac[zz][lookback_loc]
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5304, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5304, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Multiply(__pyx_t_10, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5304, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_max_current_release = __pyx_t_11;
+5305: if recovery_source.is_District == 1:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5305, __pyx_L1_error) }
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_District); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5305, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L20;
}
+5306: if recovery_source.in_leiu_banking:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5306, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
}
+5307: for participant_key in recovery_source.participant_list:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5307, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
__pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5307, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_7))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5307, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5307, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_15(__pyx_t_7);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5307, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5307, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5308: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5308, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_num_members = __pyx_t_5;
+5309: if participant_key != recovery_source.key:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5309, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5309, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_participant_key, __pyx_t_9, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5309, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
}
+5310: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5310, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_District); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5310, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5310, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L25;
}
+5311: district_obj2 = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5311, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5311, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5311, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj2, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
+5312: participant_obj = district_obj2
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj2)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj2));
+5313: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5313, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5313, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_12) {
/* … */
}
__pyx_L25:;
+5314: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5314, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5314, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
+5315: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
5316:
5317: #find waterbank partner demand (i.e., recovery capacity of their ownership share)
+5318: demand_constraint = recovery_source.find_node_output()
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5318, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5318, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_10 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_10)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
}
}
__pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5318, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5318, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
5319: #does this partner want recovery water?
+5320: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, recovery_source.inleiubanked[participant_key], recovery_source.inleiucap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5320, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5320, __pyx_L1_error) }
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5320, __pyx_L1_error) }
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_participant_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_10, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_3, __pyx_t_19, __pyx_t_17, __pyx_t_20};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_21, __pyx_t_10, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_3, __pyx_t_19, __pyx_t_17, __pyx_t_20};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_5, __pyx_t_10);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_5, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_5, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_5, __pyx_t_19);
__Pyx_GIVEREF(__pyx_t_17);
PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_5, __pyx_t_17);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_5, __pyx_t_20);
__pyx_t_10 = 0;
__pyx_t_3 = 0;
__pyx_t_19 = 0;
__pyx_t_17 = 0;
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_22, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5320, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_deliveries = __pyx_t_11;
5321: #what is their priority over the water/canal space?
+5322: priority_bank_space = recovery_source.find_leiu_priority_space(demand_constraint, num_members, participant_key, 0, search_type)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5322, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_17 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_22, __pyx_t_20, __pyx_v_participant_key, __pyx_int_0, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_22, __pyx_t_20, __pyx_v_participant_key, __pyx_int_0, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_17) {
__Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_17); __pyx_t_17 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_t_22);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_t_20);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_5, __pyx_v_participant_key);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_5, __pyx_int_0);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_5, __pyx_v_search_type);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_19, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5322, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_priority_bank_space = __pyx_t_11;
5323:
+5324: priorities = recovery_source.set_demand_priority("N/A", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A")
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5324, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_19 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_17 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_19, __pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_19, __pyx_t_20, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_3 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (__pyx_t_17) {
__Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_17); __pyx_t_17 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, __pyx_kp_u_N_A);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, __pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_5, __pyx_t_19);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_5, __pyx_t_20);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_5, __pyx_v_search_type);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_5, __pyx_kp_u_N_A);
__pyx_t_19 = 0;
__pyx_t_20 = 0;
__pyx_t_22 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5324, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
+5325: priority_turnout_adjusted = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
5326: #need to adjust the water request to account for the banking partner share of the turnout
+5327: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5327, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_18); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5327, __pyx_L1_error)
#else
__pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 5327, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_18));
__pyx_t_18 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5328: priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][lookback_loc]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5328, __pyx_L1_error)
}
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (unlikely(__pyx_v_canal->turnout_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5328, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout_frac, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_22 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_18, __pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz, __pyx_t_3) < 0)) __PYX_ERR(0, 5328, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5329: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5329, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5329, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5329, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
5330: #paper trade recovery is equal to
+5331: paper_amount = priority_turnout_adjusted[zz]*min(paper_fractions[zz], canal.recovery_flow_frac[zz][lookback_loc])
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5331, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__pyx_v_paper_fractions == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5331, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_paper_fractions, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_19 = PyObject_RichCompare(__pyx_t_18, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5331, __pyx_L1_error) __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; if (__pyx_t_12) { __Pyx_INCREF(__pyx_t_18); __pyx_t_20 = __pyx_t_18; } else { __Pyx_INCREF(__pyx_t_22); __pyx_t_20 = __pyx_t_22; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_Multiply(__pyx_t_3, __pyx_t_20); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_paper_amount = __pyx_t_11;
+5332: direct_amount = min(direct_recovery, priority_turnout_adjusted[zz]*canal.recovery_flow_frac[zz][lookback_loc] - paper_amount)
__pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5332, __pyx_L1_error) } __pyx_t_20 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_20, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyNumber_Multiply(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = PyNumber_Subtract(__pyx_t_20, __pyx_t_3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = __pyx_v_direct_recovery; __pyx_t_20 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_22 = PyObject_RichCompare(__pyx_t_18, __pyx_t_20, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (__pyx_t_12) { __Pyx_INCREF(__pyx_t_18); __pyx_t_3 = __pyx_t_18; } else { __pyx_t_22 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_3 = __pyx_t_22; __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_direct_amount = __pyx_t_11;
+5333: recovery_source.adjust_recovery(paper_amount, participant_key, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5333, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_19 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_19)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_19);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_17 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_19); __pyx_t_19 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_5, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
}
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5334: location_pumpout += paper_amount
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_paper_amount);
+5335: actual_delivery = 0.0
__pyx_v_actual_delivery = 0.0;
+5336: if delivery_loc_name == participant_obj.key:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5336, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_delivery_loc_name, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5336, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L30;
}
+5337: demand_constraint = recovery_source.find_node_output()
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5337, __pyx_L1_error) }
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_18, function);
}
}
__pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_17) : __Pyx_PyObject_CallNoArg(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5337, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5338: max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.inleiubanked[participant_key]/num_members)
__pyx_t_11 = __pyx_v_direct_amount;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5338, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_participant_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_16 = __pyx_v_demand_constraint;
if (((__pyx_t_11 < __pyx_t_16) != 0)) {
__pyx_t_23 = __pyx_t_11;
} else {
__pyx_t_23 = __pyx_t_16;
}
__pyx_t_16 = __pyx_t_23;
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_17, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_12) {
__Pyx_INCREF(__pyx_t_17);
__pyx_t_3 = __pyx_t_17;
} else {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_3 = __pyx_t_20;
__pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_17);
__pyx_t_17 = 0;
+5339: actual_delivery = participant_obj.direct_delivery_bank(max_direct_recovery, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5339, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_18 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_18)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_18);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_v_max_direct_recovery, __pyx_t_20};
__pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_v_max_direct_recovery, __pyx_t_20};
__pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_18); __pyx_t_18 = NULL;
}
__Pyx_INCREF(__pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_v_max_direct_recovery);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_5, __pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_5, __pyx_t_20);
__pyx_t_20 = 0;
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_22, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5339, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_v_actual_delivery = __pyx_t_11;
+5340: direct_recovery -= actual_delivery
__pyx_v_direct_recovery = (__pyx_v_direct_recovery - __pyx_v_actual_delivery);
+5341: recovery_source.adjust_recovery(actual_delivery, participant_key, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5341, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_actual_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_18 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_18)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_18);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_5, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_19, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5342: location_pumpout += actual_delivery
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_actual_delivery);
+5343: elif participant_obj.is_Private == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5343, __pyx_L1_error) }
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_17, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5343, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_12) {
/* … */
goto __pyx_L30;
}
+5344: counter_toggle = 0
__pyx_v_counter_toggle = 0;
+5345: for district_key in participant_obj.district_list:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5345, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_17 = __pyx_t_3; __Pyx_INCREF(__pyx_t_17); __pyx_t_24 = 0;
__pyx_t_25 = NULL;
} else {
__pyx_t_24 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_25 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 5345, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_25)) {
if (likely(PyList_CheckExact(__pyx_t_17))) {
if (__pyx_t_24 >= PyList_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_24); __Pyx_INCREF(__pyx_t_3); __pyx_t_24++; if (unlikely(0 < 0)) __PYX_ERR(0, 5345, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_17, __pyx_t_24); __pyx_t_24++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_24 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_24); __Pyx_INCREF(__pyx_t_3); __pyx_t_24++; if (unlikely(0 < 0)) __PYX_ERR(0, 5345, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_17, __pyx_t_24); __pyx_t_24++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_25(__pyx_t_17);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5345, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5345, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5346: if delivery_loc_name == district_key:
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_delivery_loc_name, __pyx_v_district_key, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5346, __pyx_L1_error) __pyx_t_13 = (__pyx_t_12 != 0); if (__pyx_t_13) { /* … */ }
+5347: demand_constraint = recovery_source.find_node_output()
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5347, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
}
}
__pyx_t_3 = (__pyx_t_20) ? __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_20) : __Pyx_PyObject_CallNoArg(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5347, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5348: max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.inleiubanked[participant_key]/num_members)
__pyx_t_11 = __pyx_v_direct_amount;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5348, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_participant_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_16 = __pyx_v_demand_constraint;
if (((__pyx_t_11 < __pyx_t_16) != 0)) {
__pyx_t_23 = __pyx_t_11;
} else {
__pyx_t_23 = __pyx_t_16;
}
__pyx_t_16 = __pyx_t_23;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_22 = PyObject_RichCompare(__pyx_t_20, __pyx_t_19, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_13) {
__Pyx_INCREF(__pyx_t_20);
__pyx_t_3 = __pyx_t_20;
} else {
__pyx_t_22 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_3 = __pyx_t_22;
__pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_20);
__pyx_t_20 = 0;
+5349: actual_delivery = participant_obj.direct_delivery_bank(max_direct_recovery, wateryear, district_key)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5349, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_19 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_19 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_19)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_19);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_v_max_direct_recovery, __pyx_t_22, __pyx_v_district_key};
__pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_v_max_direct_recovery, __pyx_t_22, __pyx_v_district_key};
__pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_18 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_19); __pyx_t_19 = NULL;
}
__Pyx_INCREF(__pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_v_max_direct_recovery);
PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_5, __pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_5, __pyx_v_district_key);
__pyx_t_22 = 0;
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_18, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_20); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5349, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_v_actual_delivery = __pyx_t_11;
+5350: direct_recovery -= actual_delivery
__pyx_v_direct_recovery = (__pyx_v_direct_recovery - __pyx_v_actual_delivery);
+5351: recovery_source.adjust_recovery(actual_delivery, participant_key, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5351, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_18 = PyFloat_FromDouble(__pyx_v_actual_delivery); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_19 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_19 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_19)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_19);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_18, __pyx_v_participant_key, __pyx_t_22};
__pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_18, __pyx_v_participant_key, __pyx_t_22};
__pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_10 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_19); __pyx_t_19 = NULL;
}
__Pyx_GIVEREF(__pyx_t_18);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_t_18);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_t_22);
__pyx_t_18 = 0;
__pyx_t_22 = 0;
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5352: location_pumpout += actual_delivery
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_actual_delivery);
+5353: counter_toggle = 1
__pyx_v_counter_toggle = 1;
+5354: if counter_toggle == 0:
__pyx_t_13 = ((__pyx_v_counter_toggle == 0) != 0);
if (__pyx_t_13) {
/* … */
}
+5355: participant_obj.get_paper_trade(paper_amount, contract_list, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5355, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_18 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_18)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_18);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_10, __pyx_v_contract_list, __pyx_t_22};
__pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_10, __pyx_v_contract_list, __pyx_t_22};
__pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL;
}
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_t_10);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_5, __pyx_t_22);
__pyx_t_10 = 0;
__pyx_t_22 = 0;
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_19, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+5356: total_paper += paper_amount
__pyx_v_total_paper = (__pyx_v_total_paper + __pyx_v_paper_amount);
5357: else:
+5358: participant_obj.get_paper_trade(paper_amount, contract_list, wateryear)
/*else*/ {
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5358, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_22 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_20);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_20, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_20)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_3, __pyx_v_contract_list, __pyx_t_19};
__pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_3, __pyx_v_contract_list, __pyx_t_19};
__pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
} else
#endif
{
__pyx_t_10 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_t_3);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_19);
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_t_19);
__pyx_t_3 = 0;
__pyx_t_19 = 0;
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_10, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5359: total_paper += paper_amount
__pyx_v_total_paper = (__pyx_v_total_paper + __pyx_v_paper_amount);
}
__pyx_L30:;
5360:
5361:
5362: #recalculate the 'recovery demand' at each waterbank
+5363: demand_constraint = recovery_source.find_node_output()
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5363, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_7 = (__pyx_t_17) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_17) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5363, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5364: self.find_node_demand_district(recovery_source, canal, lookback_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5364, __pyx_L1_error) }
if (!(likely(((__pyx_v_recovery_source) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_recovery_source, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5364, __pyx_L1_error)
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_district(__pyx_v_self, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_v_recovery_source), __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_v_toggle_district_recharge);
+5365: canal.find_turnout_adjustment(demand_constraint, flow_dir, lookback_loc, type_list)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_lookback_loc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_10 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_17, __pyx_v_flow_dir, __pyx_t_20, __pyx_v_type_list}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_17, __pyx_v_flow_dir, __pyx_t_20, __pyx_v_type_list}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_19 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_t_17); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_5, __pyx_t_20); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_5, __pyx_v_type_list); __pyx_t_17 = 0; __pyx_t_20 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5366:
+5367: elif recovery_source.is_Waterbank == 1:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5367, __pyx_L1_error) }
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5367, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L20;
}
+5368: for participant_key in recovery_source.participant_list:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5368, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
__pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_7))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5368, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5368, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_15(__pyx_t_7);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5368, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5368, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5369: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5369, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5369, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5369, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_num_members = __pyx_t_5;
+5370: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5370, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_District); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_19, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5370, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L37;
}
+5371: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5371, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5371, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5371, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_9));
__pyx_t_9 = 0;
+5372: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+5373: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5373, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_19, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5373, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_13) {
/* … */
}
__pyx_L37:;
+5374: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5374, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5374, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5374, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_9));
__pyx_t_9 = 0;
+5375: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
5376:
5377: #find waterbank partner demand (i.e., recovery capacity of their ownership share)
+5378: demand_constraint = recovery_source.find_node_demand(contract_list, participant_key, num_members, search_type)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5378, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_17 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_10 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_17) {
__Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_17); __pyx_t_17 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_t_20);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_5, __pyx_v_search_type);
__pyx_t_20 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5378, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
5379: #does this partner want recovery water?
+5380: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, recovery_source.banked[participant_key], recovery_source.bank_cap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5380, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5380, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_20, __pyx_v_participant_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5380, __pyx_L1_error) }
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_bank_cap); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_20, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_18 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_18)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_18);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[8] = {__pyx_t_18, __pyx_t_10, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_17, __pyx_t_3, __pyx_t_20, __pyx_t_22};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[8] = {__pyx_t_18, __pyx_t_10, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_17, __pyx_t_3, __pyx_t_20, __pyx_t_22};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_21 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_18); __pyx_t_18 = NULL;
}
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_5, __pyx_t_10);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_5, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_17);
PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_5, __pyx_t_17);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_5, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_5, __pyx_t_20);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_5, __pyx_t_22);
__pyx_t_10 = 0;
__pyx_t_17 = 0;
__pyx_t_3 = 0;
__pyx_t_20 = 0;
__pyx_t_22 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_21, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5380, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_deliveries = __pyx_t_11;
5381: #what is their priority over the water/canal space?
+5382: priority_bank_space = recovery_source.find_priority_space(num_members, participant_key, search_type)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5382, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_21 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_22 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_21, __pyx_v_participant_key, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_21, __pyx_v_participant_key, __pyx_v_search_type};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_GIVEREF(__pyx_t_21);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_5, __pyx_t_21);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_5, __pyx_v_search_type);
__pyx_t_21 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5382, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_priority_bank_space = __pyx_t_11;
+5383: priorities = recovery_source.set_demand_priority("NA", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A", "N/A",participant_obj.contract_list)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5383, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5383, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_17 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[10] = {__pyx_t_17, __pyx_n_u_NA, __pyx_kp_u_N_A, __pyx_t_20, __pyx_t_21, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_3};
__pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 9+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[10] = {__pyx_t_17, __pyx_n_u_NA, __pyx_kp_u_N_A, __pyx_t_20, __pyx_t_21, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_3};
__pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 9+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
__pyx_t_10 = PyTuple_New(9+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_17) {
__Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_17); __pyx_t_17 = NULL;
}
__Pyx_INCREF(__pyx_n_u_NA);
__Pyx_GIVEREF(__pyx_n_u_NA);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_n_u_NA);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_t_20);
__Pyx_GIVEREF(__pyx_t_21);
PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_5, __pyx_t_21);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_10, 5+__pyx_t_5, __pyx_v_search_type);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_10, 6+__pyx_t_5, __pyx_kp_u_N_A);
__Pyx_INCREF(__pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_kp_u_N_A);
PyTuple_SET_ITEM(__pyx_t_10, 7+__pyx_t_5, __pyx_kp_u_N_A);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_10, 8+__pyx_t_5, __pyx_t_3);
__pyx_t_20 = 0;
__pyx_t_21 = 0;
__pyx_t_22 = 0;
__pyx_t_3 = 0;
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 5383, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
+5384: priority_turnout_adjusted = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_9)); __pyx_t_9 = 0;
5385:
5386:
5387: #need to adjust the water request to account for the banking partner share of the turnout
+5388: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5388, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_19 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_19); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5388, __pyx_L1_error)
#else
__pyx_t_19 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_19))||((__pyx_t_19) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_19)->tp_name), 0))) __PYX_ERR(0, 5388, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_19));
__pyx_t_19 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5389: priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][lookback_loc]
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5389, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (unlikely(__pyx_v_canal->turnout_frac == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5389, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_canal->turnout_frac, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = PyNumber_Multiply(__pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz, __pyx_t_10) < 0)) __PYX_ERR(0, 5389, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
5390: #finds how much water can be delivered through paper trades (exchange of GW recovery for stored SW)
5391: #and how much water can be delivered directly
5392: #canal.recovery_flow_frac is the adjustment needed if the bank runs into canal capacity constraints
+5393: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5393, __pyx_L1_error)
}
__pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
for (;;) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5393, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_10)->tp_name), 0))) __PYX_ERR(0, 5393, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5394: paper_amount = priority_turnout_adjusted[zz]*min(paper_fractions[zz], canal.recovery_flow_frac[zz][lookback_loc])
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5394, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_paper_fractions == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5394, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_paper_fractions, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = PyObject_RichCompare(__pyx_t_19, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5394, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_13) { __Pyx_INCREF(__pyx_t_19); __pyx_t_22 = __pyx_t_19; } else { __Pyx_INCREF(__pyx_t_3); __pyx_t_22 = __pyx_t_3; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = PyNumber_Multiply(__pyx_t_10, __pyx_t_22); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_v_paper_amount = __pyx_t_11;
+5395: direct_amount = min(direct_recovery, priority_turnout_adjusted[zz]*canal.recovery_flow_frac[zz][lookback_loc] - paper_amount)
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (unlikely(__pyx_v_canal->recovery_flow_frac == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5395, __pyx_L1_error) } __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_canal->recovery_flow_frac, __pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_lookback_loc, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = PyNumber_Multiply(__pyx_t_19, __pyx_t_10); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_19 = PyNumber_Subtract(__pyx_t_22, __pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __pyx_v_direct_recovery; __pyx_t_22 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_3 = PyObject_RichCompare(__pyx_t_19, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_13) { __Pyx_INCREF(__pyx_t_19); __pyx_t_10 = __pyx_t_19; } else { __pyx_t_3 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __pyx_t_3; __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_direct_amount = __pyx_t_11;
+5396: recovery_source.adjust_recovery(paper_amount, participant_key, wateryear)#adjust accounts
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5396, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_21 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_3, __pyx_v_participant_key, __pyx_t_22};
__pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_3, __pyx_v_participant_key, __pyx_t_22};
__pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_5, __pyx_t_3);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_5, __pyx_t_22);
__pyx_t_3 = 0;
__pyx_t_22 = 0;
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+5397: location_pumpout += paper_amount
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_paper_amount);
5398: #if the GW is being delivered to the WB owner, more water can be delivered (not constrained by
5399: #another district's willingness to trade SW storage)
+5400: if delivery_loc_name == participant_obj.key:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5400, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5400, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_delivery_loc_name, __pyx_t_10, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5400, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L42;
}
+5401: demand_constraint = recovery_source.find_node_demand(contract_list, participant_key, num_members, search_type)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5401, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_3 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_5, __pyx_t_20);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_5, __pyx_v_search_type);
__pyx_t_20 = 0;
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5401, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5402: max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.banked[participant_key]/num_members)
__pyx_t_11 = __pyx_v_direct_amount;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5402, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_v_participant_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_16 = __pyx_v_demand_constraint;
if (((__pyx_t_11 < __pyx_t_16) != 0)) {
__pyx_t_23 = __pyx_t_11;
} else {
__pyx_t_23 = __pyx_t_16;
}
__pyx_t_16 = __pyx_t_23;
__pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_3, __pyx_t_19, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_13) {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_10 = __pyx_t_3;
} else {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_10 = __pyx_t_20;
__pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __pyx_t_10;
__Pyx_INCREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_3);
__pyx_t_3 = 0;
+5403: actual_delivery = participant_obj.direct_delivery_bank(max_direct_recovery, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5403, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_19 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_19 = PyMethod_GET_SELF(__pyx_t_10);
if (likely(__pyx_t_19)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_19);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_10, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_v_max_direct_recovery, __pyx_t_20};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_v_max_direct_recovery, __pyx_t_20};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_19); __pyx_t_19 = NULL;
}
__Pyx_INCREF(__pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_v_max_direct_recovery);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_5, __pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_5, __pyx_t_20);
__pyx_t_20 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5403, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_actual_delivery = __pyx_t_11;
+5404: direct_recovery -= actual_delivery
__pyx_v_direct_recovery = (__pyx_v_direct_recovery - __pyx_v_actual_delivery);
+5405: recovery_source.adjust_recovery(actual_delivery, participant_key, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5405, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_actual_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_19 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_19 = PyMethod_GET_SELF(__pyx_t_10);
if (likely(__pyx_t_19)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_19);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_10, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_19, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_21 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_19); __pyx_t_19 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_5, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_21, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5406: location_pumpout += actual_delivery
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_actual_delivery);
+5407: elif participant_obj.is_Private == 1:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5407, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5407, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5407, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5407, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_13) {
/* … */
goto __pyx_L42;
}
+5408: counter_toggle = 0
__pyx_v_counter_toggle = 0;
+5409: for district_key in participant_obj.district_list:
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5409, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
__pyx_t_3 = __pyx_t_10; __Pyx_INCREF(__pyx_t_3); __pyx_t_24 = 0;
__pyx_t_25 = NULL;
} else {
__pyx_t_24 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_25 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 5409, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
for (;;) {
if (likely(!__pyx_t_25)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_24 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_24); __Pyx_INCREF(__pyx_t_10); __pyx_t_24++; if (unlikely(0 < 0)) __PYX_ERR(0, 5409, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_3, __pyx_t_24); __pyx_t_24++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
} else {
if (__pyx_t_24 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_24); __Pyx_INCREF(__pyx_t_10); __pyx_t_24++; if (unlikely(0 < 0)) __PYX_ERR(0, 5409, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_3, __pyx_t_24); __pyx_t_24++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
}
} else {
__pyx_t_10 = __pyx_t_25(__pyx_t_3);
if (unlikely(!__pyx_t_10)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5409, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_10);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_10)->tp_name), 0))) __PYX_ERR(0, 5409, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_key, ((PyObject*)__pyx_t_10));
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5410: if delivery_loc_name == district_key:
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_delivery_loc_name, __pyx_v_district_key, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5410, __pyx_L1_error) __pyx_t_12 = (__pyx_t_13 != 0); if (__pyx_t_12) { /* … */ }
+5411: demand_constraint = recovery_source.find_node_demand(contract_list, participant_key, num_members, search_type)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5411, __pyx_L1_error) }
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_22 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_21);
if (likely(__pyx_t_22)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_21, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_21)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) {
PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_20, __pyx_v_search_type};
__pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_19 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
if (__pyx_t_22) {
__Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_22); __pyx_t_22 = NULL;
}
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_5, __pyx_t_20);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_5, __pyx_v_search_type);
__pyx_t_20 = 0;
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_19, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
}
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5411, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5412: max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.banked[participant_key]/num_members)
__pyx_t_11 = __pyx_v_direct_amount;
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5412, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_v_participant_key); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_19 = __Pyx_PyNumber_Divide(__pyx_t_21, __pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_16 = __pyx_v_demand_constraint;
if (((__pyx_t_11 < __pyx_t_16) != 0)) {
__pyx_t_23 = __pyx_t_11;
} else {
__pyx_t_23 = __pyx_t_16;
}
__pyx_t_16 = __pyx_t_23;
__pyx_t_21 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_20 = PyObject_RichCompare(__pyx_t_19, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_12) {
__Pyx_INCREF(__pyx_t_19);
__pyx_t_10 = __pyx_t_19;
} else {
__pyx_t_20 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_10 = __pyx_t_20;
__pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_19 = __pyx_t_10;
__Pyx_INCREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_19);
__pyx_t_19 = 0;
+5413: actual_delivery = participant_obj.direct_delivery_bank(max_direct_recovery, wateryear, district_key)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5413, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_10, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_max_direct_recovery, __pyx_t_20, __pyx_v_district_key};
__pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_v_max_direct_recovery, __pyx_t_20, __pyx_v_district_key};
__pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_INCREF(__pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_v_max_direct_recovery);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_5, __pyx_v_max_direct_recovery);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_5, __pyx_t_20);
__Pyx_INCREF(__pyx_v_district_key);
__Pyx_GIVEREF(__pyx_v_district_key);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_5, __pyx_v_district_key);
__pyx_t_20 = 0;
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_22, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5413, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_v_actual_delivery = __pyx_t_11;
+5414: direct_recovery -= actual_delivery
__pyx_v_direct_recovery = (__pyx_v_direct_recovery - __pyx_v_actual_delivery);
+5415: recovery_source.adjust_recovery(actual_delivery, participant_key, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5415, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_actual_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_21 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_10);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_10, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_t_22, __pyx_v_participant_key, __pyx_t_20};
__pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} else
#endif
{
__pyx_t_17 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_21); __pyx_t_21 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_v_participant_key);
PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_v_participant_key);
__Pyx_GIVEREF(__pyx_t_20);
PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_5, __pyx_t_20);
__pyx_t_22 = 0;
__pyx_t_20 = 0;
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_17, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5415, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
}
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5416: location_pumpout += actual_delivery
__pyx_v_location_pumpout = (__pyx_v_location_pumpout + __pyx_v_actual_delivery);
+5417: counter_toggle = 1
__pyx_v_counter_toggle = 1;
+5418: if counter_toggle == 0:
__pyx_t_12 = ((__pyx_v_counter_toggle == 0) != 0);
if (__pyx_t_12) {
/* … */
}
+5419: participant_obj.get_paper_trade(paper_amount, contract_list, wateryear)#exchange GW for SW
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5419, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_20 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_10, __pyx_v_contract_list, __pyx_t_17};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_20, __pyx_t_10, __pyx_v_contract_list, __pyx_t_17};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
} else
#endif
{
__pyx_t_22 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_5, __pyx_t_10);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_17);
PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_5, __pyx_t_17);
__pyx_t_10 = 0;
__pyx_t_17 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5420: total_paper += paper_amount
__pyx_v_total_paper = (__pyx_v_total_paper + __pyx_v_paper_amount);
5421: else:
+5422: participant_obj.get_paper_trade(paper_amount, contract_list, wateryear)#exchange GW for SW
/*else*/ {
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5422, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_22 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_10 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_19);
if (likely(__pyx_t_10)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_19, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_t_22, __pyx_v_contract_list, __pyx_t_17};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_t_22, __pyx_v_contract_list, __pyx_t_17};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_10) {
__Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_10); __pyx_t_10 = NULL;
}
__Pyx_GIVEREF(__pyx_t_22);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_5, __pyx_t_22);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_5, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_17);
PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_5, __pyx_t_17);
__pyx_t_22 = 0;
__pyx_t_17 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5423: total_paper += paper_amount
__pyx_v_total_paper = (__pyx_v_total_paper + __pyx_v_paper_amount);
}
__pyx_L42:;
5424:
5425: #recalculate the 'recovery demand' at each waterbank
+5426: self.find_node_demand_bank(recovery_source, canal, lookback_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5426, __pyx_L1_error) }
if (!(likely(((__pyx_v_recovery_source) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_recovery_source, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 5426, __pyx_L1_error)
((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->find_node_demand_bank(__pyx_v_self, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_v_recovery_source), __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list);
+5427: current_recovery = 0.0
__pyx_v_current_recovery = 0.0;
+5428: for participant_key in recovery_source.participant_list:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5428, __pyx_L1_error) }
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
__pyx_t_9 = __pyx_t_7; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_15 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5428, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_9))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5428, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5428, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
} else {
__pyx_t_7 = __pyx_t_15(__pyx_t_9);
if (unlikely(!__pyx_t_7)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5428, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_7);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5428, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5429: current_recovery += recovery_source.recovery_use[participant_key]
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_current_recovery); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5429, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_participant_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5429, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_current_recovery = __pyx_t_11;
+5430: demand_constraint = recovery_source.recovery - current_recovery
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5430, __pyx_L1_error) }
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_recovery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_current_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_19 = PyNumber_Subtract(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_19); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5430, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_v_demand_constraint = __pyx_t_11;
+5431: canal.find_turnout_adjustment(demand_constraint, flow_dir, lookback_loc, type_list)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_canal), __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_lookback_loc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_20, __pyx_t_9, __pyx_v_flow_dir, __pyx_t_7, __pyx_v_type_list}; __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[5] = {__pyx_t_20, __pyx_t_9, __pyx_v_flow_dir, __pyx_t_7, __pyx_v_type_list}; __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_17 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_v_flow_dir); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_v_flow_dir); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_v_type_list); __Pyx_GIVEREF(__pyx_v_type_list); PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_5, __pyx_v_type_list); __pyx_t_9 = 0; __pyx_t_7 = 0; __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_17, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
5432:
+5433: elif recovery_source.is_Canal == 1:
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5433, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5433, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_19, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5433, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5433, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_12) {
/* … */
}
__pyx_L20:;
+5434: new_flow_dir = canal.flow_directions['recovery'][recovery_source.name]
if (unlikely(__pyx_v_canal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5434, __pyx_L1_error) }
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (!(likely(PyUnicode_CheckExact(__pyx_t_17))||((__pyx_t_17) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_17)->tp_name), 0))) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_new_flow_dir, ((PyObject*)__pyx_t_17));
__pyx_t_17 = 0;
+5435: new_canal_size = self.canal_district_len[recovery_source.name]
if (unlikely(__pyx_v_self->canal_district_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5435, __pyx_L1_error)
}
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5435, __pyx_L1_error) }
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_name); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_self->canal_district_len, __pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_19); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5435, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__pyx_v_new_canal_size = __pyx_t_5;
+5436: new_prev_canal = canal.key
__pyx_t_19 = __pyx_v_canal->key;
__Pyx_INCREF(__pyx_t_19);
__Pyx_XDECREF_SET(__pyx_v_new_prev_canal, ((PyObject*)__pyx_t_19));
__pyx_t_19 = 0;
+5437: new_lookback_range, new_starting_point = self.set_canal_range(new_flow_dir, 'recovery', recovery_source, new_prev_canal, new_canal_size)
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5437, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_new_canal_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_new_flow_dir, __pyx_n_u_recovery, __pyx_v_recovery_source, __pyx_v_new_prev_canal, __pyx_t_3}; __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_new_flow_dir, __pyx_n_u_recovery, __pyx_v_recovery_source, __pyx_v_new_prev_canal, __pyx_t_3}; __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_9 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_new_flow_dir); __Pyx_GIVEREF(__pyx_v_new_flow_dir); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_5, __pyx_v_new_flow_dir); __Pyx_INCREF(__pyx_n_u_recovery); __Pyx_GIVEREF(__pyx_n_u_recovery); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_5, __pyx_n_u_recovery); __Pyx_INCREF(__pyx_v_recovery_source); __Pyx_GIVEREF(__pyx_v_recovery_source); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_5, __pyx_v_recovery_source); __Pyx_INCREF(__pyx_v_new_prev_canal); __Pyx_GIVEREF(__pyx_v_new_prev_canal); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_5, __pyx_v_new_prev_canal); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_9, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_19))) || (PyList_CheckExact(__pyx_t_19))) { PyObject* sequence = __pyx_t_19; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 5437, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_17 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_17 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_26 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_17 = __pyx_t_26(__pyx_t_3); if (unlikely(!__pyx_t_17)) goto __pyx_L49_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); index = 1; __pyx_t_9 = __pyx_t_26(__pyx_t_3); if (unlikely(!__pyx_t_9)) goto __pyx_L49_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_26(__pyx_t_3), 2) < 0) __PYX_ERR(0, 5437, __pyx_L1_error) __pyx_t_26 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L50_unpacking_done; __pyx_L49_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_26 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 5437, __pyx_L1_error) __pyx_L50_unpacking_done:; } __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5437, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_new_lookback_range, __pyx_t_17); __pyx_t_17 = 0; __pyx_v_new_starting_point = __pyx_t_5;
+5438: location_pumpout, paper_amount = self.delivery_recovery(contract_list, recovery_source, new_lookback_range, new_starting_point, paper_fractions, direct_recovery, new_flow_dir, type_list, priority_list, contract_canal, delivery_loc_name, dowy, wateryear)
if (unlikely(!__pyx_v_recovery_source)) { __Pyx_RaiseUnboundLocalError("recovery_source"); __PYX_ERR(0, 5438, __pyx_L1_error) }
if (!(likely(((__pyx_v_recovery_source) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_recovery_source, __pyx_ptype_11calfews_src_8canal_cy_Canal))))) __PYX_ERR(0, 5438, __pyx_L1_error)
__pyx_t_27 = ((struct __pyx_vtabstruct_11calfews_src_8model_cy_Model *)__pyx_v_self->__pyx_vtab)->delivery_recovery(__pyx_v_self, __pyx_v_contract_list, ((struct __pyx_obj_11calfews_src_8canal_cy_Canal *)__pyx_v_recovery_source), __pyx_v_new_lookback_range, __pyx_v_new_starting_point, __pyx_v_paper_fractions, __pyx_v_direct_recovery, __pyx_v_new_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_delivery_loc_name, __pyx_v_dowy, __pyx_v_wateryear);
__pyx_t_11 = __pyx_t_27.f0;
__pyx_t_16 = __pyx_t_27.f1;
__pyx_v_location_pumpout = __pyx_t_11;
__pyx_v_paper_amount = __pyx_t_16;
+5439: total_paper += paper_amount
__pyx_v_total_paper = (__pyx_v_total_paper + __pyx_v_paper_amount);
5440:
+5441: available_flow += location_pumpout
__pyx_v_available_flow = (__pyx_v_available_flow + __pyx_v_location_pumpout);
+5442: canal.turnout_use[lookback_loc] += location_pumpout
if (unlikely(__pyx_v_canal->turnout_use == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5442, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_canal->turnout_use);
__pyx_t_28 = __pyx_v_canal->turnout_use;
__pyx_t_5 = __pyx_v_lookback_loc;
if (unlikely(__pyx_t_28 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5442, __pyx_L1_error)
}
__pyx_t_19 = __Pyx_GetItemInt_List(__pyx_t_28, __pyx_t_5, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5442, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_pumpout); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5442, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_9); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5442, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_t_28 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5442, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_28, __pyx_t_5, __pyx_t_17, int, 1, __Pyx_PyInt_From_int, 1, 1, 1) < 0)) __PYX_ERR(0, 5442, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
+5443: canal.flow[lookback_loc] += available_flow
if (unlikely(__pyx_v_canal->flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5443, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_canal->flow);
__pyx_t_28 = __pyx_v_canal->flow;
__pyx_t_5 = __pyx_v_lookback_loc;
if (unlikely(__pyx_t_28 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5443, __pyx_L1_error)
}
__pyx_t_17 = __Pyx_GetItemInt_List(__pyx_t_28, __pyx_t_5, int, 1, __Pyx_PyInt_From_int, 1, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_9); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(__pyx_t_28 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5443, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_t_28, __pyx_t_5, __pyx_t_19, int, 1, __Pyx_PyInt_From_int, 1, 1, 1) < 0)) __PYX_ERR(0, 5443, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
5444:
+5445: return available_flow, total_paper
__pyx_t_27.f0 = __pyx_v_available_flow; __pyx_t_27.f1 = __pyx_v_total_paper; __pyx_r = __pyx_t_27; goto __pyx_L0;
5446:
5447:
5448:
+5449: cdef void find_node_demand_district(self, District district_node, Canal canal, int canal_loc, double demand_constraint, list contract_list, list priority_list, str contract_canal, int dowy, int wateryear, str search_type, list type_list, int toggle_district_recharge):
static void __pyx_f_11calfews_src_8model_cy_5Model_find_node_demand_district(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_node, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, int __pyx_v_canal_loc, double __pyx_v_demand_constraint, PyObject *__pyx_v_contract_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, int __pyx_v_dowy, int __pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_type_list, int __pyx_v_toggle_district_recharge) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
double __pyx_v_priority_bank_space;
double __pyx_v_deliveries;
int __pyx_v_num_members;
PyObject *__pyx_v_zz = 0;
PyObject *__pyx_v_participant_key = 0;
PyObject *__pyx_v_priorities = 0;
PyObject *__pyx_v_participant_obj = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_node_demand_district", 0);
__Pyx_TraceCall("find_node_demand_district", __pyx_f[0], 5449, 0, __PYX_ERR(0, 5449, __pyx_L1_error));
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_WriteUnraisable("calfews_src.model_cy.Model.find_node_demand_district", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_zz);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_priorities);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_TraceReturn(Py_None, 0);
__Pyx_RefNannyFinishContext();
}
5450: cdef District district_obj
5451: cdef Private private_obj
5452: cdef double priority_bank_space, deliveries
5453: cdef int num_members
5454: cdef str zz, participant_key
5455: cdef list
5456: cdef dict priorities
5457:
5458: #this function classifies the demand at a district node - 2 parts (i) find how much water district(s) want to apply and (ii) give each water request a priority
+5459: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5459, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5459, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5459, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5460: canal.demand[zz][canal_loc] = 0.0
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5460, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_canal_loc, __pyx_float_0_0, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5460, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5461: #if a district is an in-leiu bank, partners can send water to this district for banking recharge
+5462: if (district_node.in_leiu_banking and search_type == "banking") or (district_node.in_leiu_banking and search_type == "recovery"):
__pyx_t_5 = (__pyx_v_district_node->in_leiu_banking != 0);
if (!__pyx_t_5) {
goto __pyx_L7_next_or;
} else {
}
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5462, __pyx_L1_error)
__pyx_t_6 = (__pyx_t_5 != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_4 = __pyx_t_6;
goto __pyx_L6_bool_binop_done;
}
__pyx_L7_next_or:;
__pyx_t_6 = (__pyx_v_district_node->in_leiu_banking != 0);
if (__pyx_t_6) {
} else {
__pyx_t_4 = __pyx_t_6;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5462, __pyx_L1_error)
__pyx_t_5 = (__pyx_t_6 != 0);
__pyx_t_4 = __pyx_t_5;
__pyx_L6_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+5463: for participant_key in district_node.participant_list:
if (unlikely(__pyx_v_district_node->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5463, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_district_node->participant_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5463, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5463, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5463, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5464: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5464, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5464, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_num_members = __pyx_t_7;
+5465: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5465, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_District); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5465, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
goto __pyx_L12;
}
+5466: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5466, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5466, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5466, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
+5467: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+5468: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5468, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5468, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5468, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5468, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5468, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_4) {
/* … */
}
__pyx_L12:;
+5469: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5469, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5469, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
+5470: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
5471: #find if the banking partner wants to bank
+5472: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, district_node.inleiubanked[participant_key], district_node.inleiucap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5472, __pyx_L1_error) }
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_district_node->inleiubanked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5472, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_district_node->inleiubanked, __pyx_v_participant_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__pyx_v_district_node->inleiucap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5472, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_district_node->inleiucap, __pyx_v_participant_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[8] = {__pyx_t_14, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[8] = {__pyx_t_14, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
{
__pyx_t_15 = PyTuple_New(7+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (__pyx_t_14) {
__Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
}
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_t_9);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_7, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_7, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_7, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_7, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_13);
PyTuple_SET_ITEM(__pyx_t_15, 6+__pyx_t_7, __pyx_t_13);
__pyx_t_9 = 0;
__pyx_t_10 = 0;
__pyx_t_11 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5472, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_deliveries = __pyx_t_16;
5473: #determine the priorities of the banking
+5474: priority_bank_space = district_node.find_leiu_priority_space(demand_constraint, num_members, participant_key, toggle_district_recharge, search_type)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_node), __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_t_15, __pyx_t_13, __pyx_v_participant_key, __pyx_t_12, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_t_15, __pyx_t_13, __pyx_v_participant_key, __pyx_t_12, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_10 = PyTuple_New(5+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_7, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_7, __pyx_v_search_type); __pyx_t_15 = 0; __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_priority_bank_space = __pyx_t_16;
+5475: priorities = participant_obj.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5475, __pyx_L1_error) }
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_15 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_15 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_15)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_15);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_10, __pyx_t_12, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_canal};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_10, __pyx_t_12, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_canal};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
{
__pyx_t_11 = PyTuple_New(7+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (__pyx_t_15) {
__Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_15); __pyx_t_15 = NULL;
}
__Pyx_INCREF(__pyx_v_priority_list);
__Pyx_GIVEREF(__pyx_v_priority_list);
PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_v_priority_list);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_7, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_7, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_13);
PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_7, __pyx_t_13);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_11, 5+__pyx_t_7, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_canal);
__Pyx_GIVEREF(__pyx_v_contract_canal);
PyTuple_SET_ITEM(__pyx_t_11, 6+__pyx_t_7, __pyx_v_contract_canal);
__pyx_t_10 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5475, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
5476:
+5477: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5477, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5477, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5477, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5478: canal.demand[zz][canal_loc] += priorities[zz]
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5478, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __pyx_v_canal_loc;
__pyx_t_11 = __Pyx_GetItemInt(__pyx_t_8, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5478, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_t_7, __pyx_t_12, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5478, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5479: #can't purchase more than the turnout capacity
5480:
5481: else:
+5482: deliveries = district_node.set_request_constraints(demand_constraint, search_type, contract_list, 0.0, 999.0, dowy, wateryear)
/*else*/ {
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_node), __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_11 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_t_8, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_12, __pyx_t_13};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_t_8, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_12, __pyx_t_13};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
} else
#endif
{
__pyx_t_10 = PyTuple_New(7+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL;
}
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_8);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_7, __pyx_v_contract_list);
__Pyx_INCREF(__pyx_float_0_0);
__Pyx_GIVEREF(__pyx_float_0_0);
PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_7, __pyx_float_0_0);
__Pyx_INCREF(__pyx_float_999_0);
__Pyx_GIVEREF(__pyx_float_999_0);
PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_7, __pyx_float_999_0);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_10, 5+__pyx_t_7, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_13);
PyTuple_SET_ITEM(__pyx_t_10, 6+__pyx_t_7, __pyx_t_13);
__pyx_t_8 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5482, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_deliveries = __pyx_t_16;
5483: #find what priority district has for flow purchases
+5484: priorities = district_node.set_demand_priority(priority_list, contract_list, demand_constraint, deliveries, demand_constraint, search_type, contract_canal)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_node), __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_13 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_10, __pyx_t_13, __pyx_t_12, __pyx_v_search_type, __pyx_v_contract_canal}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_10, __pyx_t_13, __pyx_t_12, __pyx_v_search_type, __pyx_v_contract_canal}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 7+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_11 = PyTuple_New(7+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_priority_list); __Pyx_GIVEREF(__pyx_v_priority_list); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_v_priority_list); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_v_contract_list); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_7, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_7, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_11, 5+__pyx_t_7, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyTuple_SET_ITEM(__pyx_t_11, 6+__pyx_t_7, __pyx_v_contract_canal); __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5484, __pyx_L1_error) __pyx_v_priorities = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
5485:
+5486: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5486, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5486, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5486, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L5:;
+5487: canal.demand[zz][canal_loc] += priorities[zz]
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5487, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __pyx_v_canal_loc;
__pyx_t_11 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5487, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_7, __pyx_t_13, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5487, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5488:
5489:
5490:
+5491: cdef void find_node_demand_bank(self, Waterbank bank_node, Canal canal, int canal_loc, list contract_list, list priority_list, str contract_canal, int dowy, int wateryear, str search_type, list type_list):
static void __pyx_f_11calfews_src_8model_cy_5Model_find_node_demand_bank(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_bank_node, struct __pyx_obj_11calfews_src_8canal_cy_Canal *__pyx_v_canal, int __pyx_v_canal_loc, PyObject *__pyx_v_contract_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, int __pyx_v_dowy, int __pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_type_list) {
PyObject *__pyx_v_zz = 0;
PyObject *__pyx_v_participant_key = 0;
int __pyx_v_num_members;
double __pyx_v_demand_constraint;
double __pyx_v_priority_bank_space;
double __pyx_v_deliveries;
PyObject *__pyx_v_priorities = 0;
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
PyObject *__pyx_v_participant_obj = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_node_demand_bank", 0);
__Pyx_TraceCall("find_node_demand_bank", __pyx_f[0], 5491, 0, __PYX_ERR(0, 5491, __pyx_L1_error));
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_WriteUnraisable("calfews_src.model_cy.Model.find_node_demand_bank", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_zz);
__Pyx_XDECREF(__pyx_v_participant_key);
__Pyx_XDECREF(__pyx_v_priorities);
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF(__pyx_v_participant_obj);
__Pyx_TraceReturn(Py_None, 0);
__Pyx_RefNannyFinishContext();
}
5492: cdef str zz, participant_key
5493: cdef int num_members
5494: cdef double demand_constraint, priority_bank_space, deliveries
5495: cdef dict priorities
5496: cdef District district_obj
5497: cdef Private private_obj
5498:
5499: #this function finds the total demand at a waterbank node - 3 parts (i) find total water that can be taken (ii) find how much water district(s) want to apply (iii) give each water request a priority
5500: #for waterbanks, we calculate the demands of each waterbank partner individually
+5501: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5501, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5501, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5501, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5501, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5502: canal.demand[zz][canal_loc] = 0.0
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5502, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5502, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_canal_loc, __pyx_float_0_0, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5502, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5503:
+5504: for participant_key in bank_node.participant_list:
if (unlikely(__pyx_v_bank_node->participant_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5504, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_bank_node->participant_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5504, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5504, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_participant_key, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5505: num_members = self.district_keys_len[participant_key]
if (unlikely(__pyx_v_self->district_keys_len == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5505, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys_len, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5505, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_num_members = __pyx_t_4;
+5506: if self.district_keys[participant_key].is_District == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5506, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_District); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5506, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
goto __pyx_L7;
}
+5507: district_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5507, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5507, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5507, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
+5508: participant_obj = district_obj
__Pyx_INCREF(((PyObject *)__pyx_v_district_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_district_obj));
+5509: elif self.district_keys[participant_key].is_Private == 1:
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5509, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5509, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5509, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5509, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5509, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
__pyx_L7:;
+5510: private_obj = self.district_keys[participant_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5510, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_participant_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5510, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5510, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_3));
__pyx_t_3 = 0;
+5511: participant_obj = private_obj
__Pyx_INCREF(((PyObject *)__pyx_v_private_obj)); __Pyx_XDECREF_SET(__pyx_v_participant_obj, ((PyObject *)__pyx_v_private_obj));
5512:
5513: #find waterbank partner demand (i.e., recharge capacity of their ownership share)
+5514: demand_constraint = bank_node.find_node_demand(contract_list, participant_key, num_members, search_type)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_bank_node), __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_7, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_participant_key, __pyx_t_7, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_v_contract_list); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_v_participant_key); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_4, __pyx_v_search_type); __pyx_t_7 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5514, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_demand_constraint = __pyx_t_10;
5515: #does this partner want to bank water?
+5516: deliveries = participant_obj.set_request_constraints(demand_constraint, search_type, contract_list, bank_node.banked[participant_key], bank_node.bank_cap[participant_key], dowy, wateryear)
if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5516, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_bank_node->banked == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5516, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_bank_node->banked, __pyx_v_participant_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__pyx_v_bank_node->bank_cap == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5516, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_bank_node->bank_cap, __pyx_v_participant_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_7, __pyx_t_8, __pyx_t_11, __pyx_t_12};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_7, __pyx_t_8, __pyx_t_11, __pyx_t_12};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
} else
#endif
{
__pyx_t_14 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = NULL;
}
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_t_9);
__Pyx_INCREF(__pyx_v_search_type);
__Pyx_GIVEREF(__pyx_v_search_type);
PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_search_type);
__Pyx_INCREF(__pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_v_contract_list);
PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_v_contract_list);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_4, __pyx_t_12);
__pyx_t_9 = 0;
__pyx_t_7 = 0;
__pyx_t_8 = 0;
__pyx_t_11 = 0;
__pyx_t_12 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5516, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_deliveries = __pyx_t_10;
5517: #deliveries = bank_node.set_request_constraints(demand_constraint, search_type, contract_list)
5518: #what is their priority over the water/canal space?
+5519: priority_bank_space = bank_node.find_priority_space(num_members, participant_key, search_type)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_bank_node), __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_t_14, __pyx_v_participant_key, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_t_14, __pyx_v_participant_key, __pyx_v_search_type}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif { __pyx_t_11 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_v_participant_key); __Pyx_GIVEREF(__pyx_v_participant_key); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_4, __pyx_v_participant_key); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_4, __pyx_v_search_type); __pyx_t_14 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_priority_bank_space = __pyx_t_10;
+5520: priorities = bank_node.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal, canal.name, participant_obj.contract_list)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_bank_node), __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_14 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(!__pyx_v_participant_obj)) { __Pyx_RaiseUnboundLocalError("participant_obj"); __PYX_ERR(0, 5520, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_obj, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[10] = {__pyx_t_7, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_11, __pyx_t_14, __pyx_t_12, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_v_canal->name, __pyx_t_8}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 9+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[10] = {__pyx_t_7, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_11, __pyx_t_14, __pyx_t_12, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_v_canal->name, __pyx_t_8}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 9+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_9 = PyTuple_New(9+__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_priority_list); __Pyx_GIVEREF(__pyx_v_priority_list); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_4, __pyx_v_priority_list); __Pyx_INCREF(__pyx_v_contract_list); __Pyx_GIVEREF(__pyx_v_contract_list); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_4, __pyx_v_contract_list); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_4, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_4, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_v_search_type); __Pyx_GIVEREF(__pyx_v_search_type); PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_4, __pyx_v_search_type); __Pyx_INCREF(__pyx_v_contract_canal); __Pyx_GIVEREF(__pyx_v_contract_canal); PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_4, __pyx_v_contract_canal); __Pyx_INCREF(__pyx_v_canal->name); __Pyx_GIVEREF(__pyx_v_canal->name); PyTuple_SET_ITEM(__pyx_t_9, 7+__pyx_t_4, __pyx_v_canal->name); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 8+__pyx_t_4, __pyx_t_8); __pyx_t_11 = 0; __pyx_t_14 = 0; __pyx_t_12 = 0; __pyx_t_8 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 5520, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
5521: #take the individual priorities of waterbank members and add them to the total canal node demands
5522:
+5523: for zz in type_list:
if (unlikely(__pyx_v_type_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5523, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_15 = 0;
for (;;) {
if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 5523, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5523, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(PyUnicode_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 5523, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_zz, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5524: canal.demand[zz][canal_loc] += priorities[zz]
if (unlikely(__pyx_v_canal->demand == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5524, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_canal->demand, __pyx_v_zz); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __pyx_v_canal_loc;
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_5, __pyx_t_4, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__pyx_v_priorities == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5524, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_t_4, __pyx_t_12, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5525:
5526: #####################################################################################################################
5527: #####################################################################################################################
5528: #####################################################################################################################
5529:
5530:
5531:
5532: #####################################################################################################################
5533: #####################################################################################################################
5534: #####################################################################################################################
5535:
5536:
5537: #####################################################################################################################
5538: ############################### Miscellaneous Functions Within Simulation ###############################
5539: #####################################################################################################################
+5540: def set_regulations_current_south(self, scenario):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_83set_regulations_current_south(PyObject *__pyx_v_self, PyObject *__pyx_v_scenario); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_83set_regulations_current_south(PyObject *__pyx_v_self, PyObject *__pyx_v_scenario) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_current_south (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_82set_regulations_current_south(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), ((PyObject *)__pyx_v_scenario));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_82set_regulations_current_south(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_scenario) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *__pyx_v_waterbank_obj = 0;
long __pyx_v_xnum;
CYTHON_UNUSED double __pyx_v_tot_contract;
Py_ssize_t __pyx_v_x;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_current_south", 0);
__Pyx_TraceCall("set_regulations_current_south", __pyx_f[0], 5540, 0, __PYX_ERR(0, 5540, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_regulations_current_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_waterbank_obj);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
5541: cdef District district_obj
5542: cdef Waterbank waterbank_obj
5543:
+5544: self.semitropic.leiu_recovery = 0.7945
__pyx_v_self->semitropic->leiu_recovery = 0.7945;
+5545: self.isabella.capacity = 361.25
__pyx_v_self->isabella->capacity = 361.25;
+5546: self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6], [302.6,170,170,245,245,361.25,361.25,302.6]]
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_302_6); __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_2, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_2, 7, __pyx_float_302_6); __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; if (unlikely(__pyx_v_self->isabella->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5546, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->isabella->tocs_rule, __pyx_n_u_storage, __pyx_t_3) < 0)) __PYX_ERR(0, 5546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5547: self.poso.initial_recharge = 420.0
__pyx_v_self->poso->initial_recharge = 420.0;
+5548: self.poso.recovery = 0.6942
__pyx_v_self->poso->recovery = 0.6942;
+5549: self.poso.tot_storage = 2.1
__pyx_v_self->poso->tot_storage = 2.1;
+5550: self.irvineranch.initial_recharge = 300.0
__pyx_v_self->irvineranch->initial_recharge = 300.0;
+5551: self.irvineranch.recovery = 0.0479
__pyx_v_self->irvineranch->recovery = 0.0479;
+5552: self.irvineranch.tot_storage = 0.594
__pyx_v_self->irvineranch->tot_storage = 0.594;
+5553: self.losthills.project_contract['tableA'] = 0.0293663708
if (unlikely(__pyx_v_self->losthills->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5553, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->losthills->project_contract, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5553, __pyx_L1_error)
+5554: self.wheeler.project_contract['tableA'] = 0.04858926015
if (unlikely(__pyx_v_self->wheeler->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5554, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->wheeler->project_contract, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5554, __pyx_L1_error)
+5555: self.belridge.project_contract['tableA'] = 0.02995607
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5555, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5555, __pyx_L1_error)
+5556: self.southbay.project_contract['tableA'] = 0.0548863
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5556, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5556, __pyx_L1_error)
+5557: self.westkern.project_contract['tableA'] = 0.00776587
if (unlikely(__pyx_v_self->westkern->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5557, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->westkern->project_contract, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5557, __pyx_L1_error)
+5558: self.berrenda.project_contract['tableA'] = 0.02282922
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5558, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5558, __pyx_L1_error)
+5559: self.socal.project_contract['tableA'] = 0.648310
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5559, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5559, __pyx_L1_error)
+5560: for xnum in range(0, self.number_years):
__pyx_t_4 = __pyx_v_self->number_years;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_xnum = __pyx_t_6;
+5561: self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.648310)
__pyx_t_3 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->metropolitan->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5561, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->private_fraction, __pyx_n_u_SOC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_xnum, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5561, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5562: self.metropolitan.pump_out_fraction['SOC'] = 1911.0/(4056.0 * 0.648310)
__pyx_t_3 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->metropolitan->pump_out_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5562, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->metropolitan->pump_out_fraction, __pyx_n_u_SOC, __pyx_t_3) < 0)) __PYX_ERR(0, 5562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; }
+5563: self.socal.private_fraction = [(1911.0 + (0.03629 + 0.05274) * 4056.0 * 0.648310) / (4056.0 * 0.648310)]
__pyx_t_3 = PyFloat_FromDouble(((1911.0 + (((0.03629 + 0.05274) * 4056.0) * 0.648310)) / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->socal->private_fraction); __Pyx_DECREF(__pyx_v_self->socal->private_fraction); __pyx_v_self->socal->private_fraction = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
5564:
+5565: self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
__pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5565, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_normal, __pyx_t_2) < 0)) __PYX_ERR(0, 5565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5566: self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
__pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5566, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_reverse, __pyx_t_2) < 0)) __PYX_ERR(0, 5566, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5567: self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
__pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5567, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_closed, __pyx_t_2) < 0)) __PYX_ERR(0, 5567, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5568: self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5568, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_normal, __pyx_t_2) < 0)) __PYX_ERR(0, 5568, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5569: self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5569, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_reverse, __pyx_t_2) < 0)) __PYX_ERR(0, 5569, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5570: self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5570, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_closed, __pyx_t_2) < 0)) __PYX_ERR(0, 5570, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5571: self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5571, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5571, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5572: self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5572, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5572, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5573: self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5573, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5573, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5574: self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5574, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5574, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5575: self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
if (unlikely(__pyx_v_self->fkc->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5575, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->fkc->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_xvc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5575, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5576: self.kwb.initial_recharge = 1212.12
__pyx_v_self->kwb->initial_recharge = 1212.12;
+5577: self.kwb.recovery = 0.7863
__pyx_v_self->kwb->recovery = 0.7863;
+5578: self.kwb.tot_storage = 2.4
__pyx_v_self->kwb->tot_storage = 2.4;
+5579: tot_contract = 0.0
__pyx_v_tot_contract = 0.0;
5580:
+5581: if self.use_sensitivity:
__pyx_t_7 = (__pyx_v_self->use_sensitivity != 0);
if (__pyx_t_7) {
/* … */
}
+5582: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5582, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5582, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5582, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5583: district_obj.set_sensitivity_factors(self.sensitivity_factors['et_multiplier']['realization'], self.sensitivity_factors['acreage_multiplier']['realization'], self.sensitivity_factors['irrigation_efficiency']['realization'], self.sensitivity_factors['recharge_decline']['realization'])
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_district_obj), __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5583, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_et_multiplier); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5583, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_acreage_multiplier); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5583, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_irrigation_efficiency); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5583, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_recharge_decline); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } else #endif { __pyx_t_14 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_t_13); __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5584: for waterbank_obj in self.waterbank_list:
if (unlikely(__pyx_v_self->waterbank_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5584, __pyx_L1_error)
}
__pyx_t_2 = __pyx_v_self->waterbank_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
for (;;) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5584, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11calfews_src_12waterbank_cy_Waterbank))))) __PYX_ERR(0, 5584, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_waterbank_obj, ((struct __pyx_obj_11calfews_src_12waterbank_cy_Waterbank *)__pyx_t_3));
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5585: for x in range(0, len(waterbank_obj.recharge_decline)):
__pyx_t_3 = __pyx_v_waterbank_obj->recharge_decline;
__Pyx_INCREF(__pyx_t_3);
if (unlikely(__pyx_t_3 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 5585, __pyx_L1_error)
}
__pyx_t_15 = PyList_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5585, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_x = __pyx_t_17;
+5586: waterbank_obj.recharge_decline[x] = 1.0 - self.sensitivity_factors['recharge_decline']['realization']*(1.0 - waterbank_obj.recharge_decline[x])
if (unlikely(__pyx_v_self->sensitivity_factors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5586, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->sensitivity_factors, __pyx_n_u_recharge_decline); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_realization); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_waterbank_obj->recharge_decline == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5586, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_waterbank_obj->recharge_decline, __pyx_v_x, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_14 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_waterbank_obj->recharge_decline == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5586, __pyx_L1_error)
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_waterbank_obj->recharge_decline, __pyx_v_x, __pyx_t_14, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0)) __PYX_ERR(0, 5586, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
}
5587:
5588:
+5589: def set_regulations_historical_north(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_85set_regulations_historical_north(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_85set_regulations_historical_north(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_historical_north (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_84set_regulations_historical_north(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_84set_regulations_historical_north(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_historical_north", 0);
__Pyx_TraceCall("set_regulations_historical_north", __pyx_f[0], 5589, 0, __PYX_ERR(0, 5589, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_regulations_historical_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+5590: if self.starting_year >= 2005:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D5) != 0);
if (__pyx_t_1) {
/* … */
}
+5591: self.yuba.env_min_flow = self.yuba.env_min_flow_ya
__pyx_t_2 = __pyx_v_self->yuba->env_min_flow_ya;
__Pyx_INCREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->yuba->env_min_flow);
__Pyx_DECREF(__pyx_v_self->yuba->env_min_flow);
__pyx_v_self->yuba->env_min_flow = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+5592: self.yuba.temp_releases = self.yuba.temp_releases_ya
__pyx_t_2 = __pyx_v_self->yuba->temp_releases_ya;
__Pyx_INCREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_self->yuba->temp_releases);
__Pyx_DECREF(__pyx_v_self->yuba->temp_releases);
__pyx_v_self->yuba->temp_releases = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+5593: if self.starting_year >= 2008:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D8) != 0);
if (__pyx_t_1) {
/* … */
}
+5594: for x in range(318, 334):
for (__pyx_t_3 = 0x13E; __pyx_t_3 < 0x14E; __pyx_t_3+=1) {
__pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5594, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
__pyx_t_2 = 0;
+5595: self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
__pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_4, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_2, 77.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5595, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_t_4) < 0)) __PYX_ERR(0, 5595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5596: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5596, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5596, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5596, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
+5597: for x in range(334,366):
for (__pyx_t_3 = 0x14E; __pyx_t_3 < 0x16E; __pyx_t_3+=1) {
__pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
__pyx_t_4 = 0;
+5598: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5598, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5599: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5599, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5599, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
+5600: for x in range(0, 30):
for (__pyx_t_3 = 0; __pyx_t_3 < 30; __pyx_t_3+=1) {
__pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
__pyx_t_4 = 0;
+5601: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5601, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5601, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5601, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5602: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5602, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5602, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
5603:
+5604: def set_regulations_current_north(self):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_87set_regulations_current_north(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_87set_regulations_current_north(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_current_north (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_86set_regulations_current_north(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_86set_regulations_current_north(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self) {
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_current_north", 0);
__Pyx_TraceCall("set_regulations_current_north", __pyx_f[0], 5604, 0, __PYX_ERR(0, 5604, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_regulations_current_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+5605: self.yuba.env_min_flow = self.yuba.env_min_flow_ya
__pyx_t_1 = __pyx_v_self->yuba->env_min_flow_ya; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->yuba->env_min_flow); __Pyx_DECREF(__pyx_v_self->yuba->env_min_flow); __pyx_v_self->yuba->env_min_flow = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5606: self.yuba.temp_releases = self.yuba.temp_releases_ya
__pyx_t_1 = __pyx_v_self->yuba->temp_releases_ya; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->yuba->temp_releases); __Pyx_DECREF(__pyx_v_self->yuba->temp_releases); __pyx_v_self->yuba->temp_releases = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5607: for x in range(318, 334):
for (__pyx_t_2 = 0x13E; __pyx_t_2 < 0x14E; __pyx_t_2+=1) {
__pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5607, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
__pyx_t_1 = 0;
+5608: self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_3, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_1, 77.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5608, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_x, __pyx_t_3) < 0)) __PYX_ERR(0, 5608, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5609: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5609, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
+5610: for x in range(334,366):
for (__pyx_t_2 = 0x14E; __pyx_t_2 < 0x16E; __pyx_t_2+=1) {
__pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
__pyx_t_3 = 0;
+5611: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5611, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5611, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5612: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5612, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5612, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5612, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
+5613: for x in range(0, 30):
for (__pyx_t_2 = 0; __pyx_t_2 < 30; __pyx_t_2+=1) {
__pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
__pyx_t_3 = 0;
+5614: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5614, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5614, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5615: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5615, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5615, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5615, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
5616:
5617:
+5618: def set_regulations_historical_south(self, scenario):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_89set_regulations_historical_south(PyObject *__pyx_v_self, PyObject *__pyx_v_scenario); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_89set_regulations_historical_south(PyObject *__pyx_v_self, PyObject *__pyx_v_scenario) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_historical_south (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_88set_regulations_historical_south(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), ((PyObject *)__pyx_v_scenario));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_88set_regulations_historical_south(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_scenario) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
PyObject *__pyx_v_expected_outflow_releases = NULL;
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_v_district_key = NULL;
long __pyx_v_xnum;
CYTHON_UNUSED long __pyx_v_do_nothing;
double __pyx_v_request_empty;
long __pyx_v_contractor_toggle;
PyObject *__pyx_v_contract = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_regulations_historical_south", 0);
__Pyx_TraceCall("set_regulations_historical_south", __pyx_f[0], 5618, 0, __PYX_ERR(0, 5618, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("calfews_src.model_cy.Model.set_regulations_historical_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF(__pyx_v_expected_outflow_releases);
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_contract);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
5619: cdef District district_obj
5620: cdef Private private_obj
5621: cdef Contract contract_obj
5622:
+5623: if self.starting_year >= 2005:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D5) != 0);
if (__pyx_t_1) {
/* … */
}
+5624: self.semitropic.leiu_recovery = 0.7945
__pyx_v_self->semitropic->leiu_recovery = 0.7945;
+5625: if self.starting_year >= 2009:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D9) != 0);
if (__pyx_t_1) {
/* … */
}
+5626: expected_outflow_releases = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+5627: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_2 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5627, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5628: expected_outflow_releases[wyt] = np.zeros(366)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_int_366); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_4) < 0)) __PYX_ERR(0, 5628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5629: self.millerton.carryover_target[wyt] = 250.0
if (unlikely(__pyx_v_self->millerton->carryover_target == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5629, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->millerton->carryover_target, __pyx_v_wyt, __pyx_float_250_0) < 0)) __PYX_ERR(0, 5629, __pyx_L1_error)
+5630: self.millerton.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 1)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_6, __pyx_int_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_6, __pyx_int_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_v_expected_outflow_releases); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_int_1); __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5631: self.millerton.max_carryover_target = 250.0
__pyx_v_self->millerton->max_carryover_target = 250.0;
5632:
+5633: if self.starting_year >= 2004:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D4) != 0);
if (__pyx_t_1) {
/* … */
}
+5634: self.kaweah.capacity = 180.0
__pyx_v_self->kaweah->capacity = 180.0;
+5635: self.kaweah.tocs_rule['storage'] = [[180,63,63,180,180], [180,63,63,180,180]]
__pyx_t_2 = PyList_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_int_180); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_63); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_63); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_180); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_180); __pyx_t_4 = PyList_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_180); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_63); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_int_63); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_int_180); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_4, 4, __pyx_int_180); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_self->kaweah->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5635, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kaweah->tocs_rule, __pyx_n_u_storage, __pyx_t_5) < 0)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5636: if self.starting_year >= 2005:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D5) != 0);
if (__pyx_t_1) {
/* … */
}
+5637: self.isabella.capacity = 400.0
__pyx_v_self->isabella->capacity = 400.0;
+5638: self.isabella.tocs_rule['storage'] = [[302.6,245,245,245,245,400,400,302.6], [302.6,245,245,245,245,400,400,302.6]]
__pyx_t_5 = PyList_New(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_245); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_int_400); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_5, 6, __pyx_int_400); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 7, __pyx_float_302_6); __pyx_t_4 = PyList_New(8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 4, __pyx_int_245); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_4, 5, __pyx_int_400); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_4, 6, __pyx_int_400); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_4, 7, __pyx_float_302_6); __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_5 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_self->isabella->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5638, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->isabella->tocs_rule, __pyx_n_u_storage, __pyx_t_2) < 0)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5639: self.kernriver.carryover = 170.0
__pyx_v_self->kernriver->carryover = 170.0;
+5640: if self.starting_year >= 2006:
__pyx_t_1 = ((__pyx_v_self->starting_year >= 0x7D6) != 0);
if (__pyx_t_1) {
/* … */
}
+5641: self.isabella.capacity = 361.25
__pyx_v_self->isabella->capacity = 361.25;
+5642: self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6], [302.6,170,170,245,245,361.25,361.25,302.6]]
__pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_2, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_2, 7, __pyx_float_302_6); __pyx_t_4 = PyList_New(8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_4, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_4, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_4, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_4, 7, __pyx_float_302_6); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_self->isabella->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5642, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->isabella->tocs_rule, __pyx_n_u_storage, __pyx_t_5) < 0)) __PYX_ERR(0, 5642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5643: self.kernriver.carryover = 170.0
__pyx_v_self->kernriver->carryover = 170.0;
+5644: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5644, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5644, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5644, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5645: district_obj.carryover_rights = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_district_obj->carryover_rights); __Pyx_DECREF(__pyx_v_district_obj->carryover_rights); __pyx_v_district_obj->carryover_rights = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+5646: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5646, __pyx_L1_error)
}
__pyx_t_4 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5646, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5646, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_2));
__pyx_t_2 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5647: if contract_obj.type == 'right':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5647, __pyx_L1_error) __pyx_t_10 = (__pyx_t_1 != 0); if (__pyx_t_10) { /* … */ goto __pyx_L14; }
+5648: district_obj.carryover_rights[contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5648, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5648, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_t_6) < 0)) __PYX_ERR(0, 5648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5649: else:
+5650: district_obj.carryover_rights[contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5650, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5650, __pyx_L1_error)
}
__pyx_L14:;
+5651: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5651, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5651, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5651, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5651, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5652: private_obj.carryover_rights = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+5653: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5653, __pyx_L1_error)
}
__pyx_t_4 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5653, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5653, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5654: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5654, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5654, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5654, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+5655: private_obj.carryover_rights[district_key] = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5655, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_6) < 0)) __PYX_ERR(0, 5655, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5656: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5656, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5656, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5656, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_7));
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5657: if contract_obj.type == 'right':
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5657, __pyx_L1_error) __pyx_t_1 = (__pyx_t_10 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L21; }
+5658: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][0]
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5658, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5658, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Multiply(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5658, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_contract_obj->name, __pyx_t_12) < 0)) __PYX_ERR(0, 5658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
5659: else:
+5660: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5660, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_L21:;
+5661: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5661, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5661, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5661, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5661, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5662: private_obj.carryover_rights = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+5663: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5663, __pyx_L1_error)
}
__pyx_t_4 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5663, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5663, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5664: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5664, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5664, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5664, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_6));
__pyx_t_6 = 0;
+5665: private_obj.carryover_rights[district_key] = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5665, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_6) < 0)) __PYX_ERR(0, 5665, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5666: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5666, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_12); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5666, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5666, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_12));
__pyx_t_12 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5667: if contract_obj.type == 'right':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5667, __pyx_L1_error) __pyx_t_10 = (__pyx_t_1 != 0); if (__pyx_t_10) { /* … */ goto __pyx_L28; }
+5668: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][0]
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5668, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5668, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5668, __pyx_L1_error) } __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_contract_obj->name, __pyx_t_2) < 0)) __PYX_ERR(0, 5668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5669: else:
+5670: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5670, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5670, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5670, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L28:;
+5671: if self.starting_year >= 2009:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7D9) != 0);
if (__pyx_t_10) {
/* … */
}
+5672: self.poso.initial_recharge = 420.0
__pyx_v_self->poso->initial_recharge = 420.0;
+5673: self.poso.recovery = 0.6942
__pyx_v_self->poso->recovery = 0.6942;
+5674: self.poso.tot_storage = 2.1
__pyx_v_self->poso->tot_storage = 2.1;
+5675: self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5675, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5675, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5675, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal, __pyx_t_5) < 0)) __PYX_ERR(0, 5675, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5676: if self.starting_year >= 2010:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7DA) != 0);
if (__pyx_t_10) {
/* … */
}
+5677: self.irvineranch.initial_recharge = 300.0
__pyx_v_self->irvineranch->initial_recharge = 300.0;
+5678: self.irvineranch.recovery = 0.0479
__pyx_v_self->irvineranch->recovery = 0.0479;
+5679: self.irvineranch.tot_storage = 0.594
__pyx_v_self->irvineranch->tot_storage = 0.594;
+5680: if self.starting_year >= 1998:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7CE) != 0);
if (__pyx_t_10) {
/* … */
}
+5681: self.berrenda.project_contract['tableA'] = 0.032076
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5681, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_032076) < 0)) __PYX_ERR(0, 5681, __pyx_L1_error)
+5682: self.socal.project_contract['tableA'] = 0.63338264299
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5682, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_63338264299) < 0)) __PYX_ERR(0, 5682, __pyx_L1_error)
+5683: for xnum in range(0, self.number_years):
__pyx_t_8 = __pyx_v_self->number_years;
__pyx_t_13 = __pyx_t_8;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_xnum = __pyx_t_14;
+5684: self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.63338264299)
__pyx_t_5 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.63338264299))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_self->metropolitan->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5684, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->private_fraction, __pyx_n_u_SOC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(__pyx_t_4, __pyx_v_xnum, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5684, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; }
+5685: self.socal.private_fraction = [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.63338264299)]
__pyx_t_5 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.63338264299))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->socal->private_fraction); __Pyx_DECREF(__pyx_v_self->socal->private_fraction); __pyx_v_self->socal->private_fraction = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+5686: if self.starting_year >= 1999:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7CF) != 0);
if (__pyx_t_10) {
/* … */
}
+5687: self.belridge.project_contract['tableA'] = 0.03636
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5687, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_03636) < 0)) __PYX_ERR(0, 5687, __pyx_L1_error)
+5688: if self.starting_year >= 2000:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7D0) != 0);
if (__pyx_t_10) {
/* … */
}
+5689: self.southbay.project_contract['tableA'] = 0.05177514792
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5689, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_05177514792) < 0)) __PYX_ERR(0, 5689, __pyx_L1_error)
+5690: self.belridge.project_contract['tableA'] = 0.03538
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5690, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_03538) < 0)) __PYX_ERR(0, 5690, __pyx_L1_error)
+5691: self.berrenda.project_contract['tableA'] = 0.03035
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5691, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_03035) < 0)) __PYX_ERR(0, 5691, __pyx_L1_error)
+5692: self.losthills.project_contract['tableA'] = 0.0293663708
if (unlikely(__pyx_v_self->losthills->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5692, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->losthills->project_contract, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5692, __pyx_L1_error)
+5693: self.wheeler.project_contract['tableA'] = 0.04858926015
if (unlikely(__pyx_v_self->wheeler->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5693, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->wheeler->project_contract, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5693, __pyx_L1_error)
+5694: self.socal.project_contract['tableA'] = 0.64423076923
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5694, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_64423076923) < 0)) __PYX_ERR(0, 5694, __pyx_L1_error)
+5695: for xnum in range(0, self.number_years):
__pyx_t_8 = __pyx_v_self->number_years;
__pyx_t_13 = __pyx_t_8;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_xnum = __pyx_t_14;
+5696: self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.64423076923)
__pyx_t_4 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.64423076923))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_self->metropolitan->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5696, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->private_fraction, __pyx_n_u_SOC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_xnum, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+5697: self.socal.private_fraction = [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.64423076923)]
__pyx_t_4 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.64423076923))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->socal->private_fraction); __Pyx_DECREF(__pyx_v_self->socal->private_fraction); __pyx_v_self->socal->private_fraction = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
5698:
+5699: if self.starting_year >= 2001:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7D1) != 0);
if (__pyx_t_10) {
/* … */
}
+5700: self.southbay.project_contract['tableA'] = 0.05424063116
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5700, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_05424063116) < 0)) __PYX_ERR(0, 5700, __pyx_L1_error)
+5701: self.belridge.project_contract['tableA'] = 0.0305
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5701, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_0305) < 0)) __PYX_ERR(0, 5701, __pyx_L1_error)
+5702: self.berrenda.project_contract['tableA'] = 0.02837
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5702, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02837) < 0)) __PYX_ERR(0, 5702, __pyx_L1_error)
+5703: if self.starting_year >= 2004:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7D4) != 0);
if (__pyx_t_10) {
/* … */
}
+5704: self.belridge.project_contract['tableA'] = 0.02995607
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5704, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5704, __pyx_L1_error)
+5705: self.berrenda.project_contract['tableA'] = 0.02677
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5705, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02677) < 0)) __PYX_ERR(0, 5705, __pyx_L1_error)
+5706: self.southbay.project_contract['tableA'] = 0.0548863
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5706, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5706, __pyx_L1_error)
+5707: self.westkern.project_contract['tableA'] = 0.00776587
if (unlikely(__pyx_v_self->westkern->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5707, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->westkern->project_contract, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5707, __pyx_L1_error)
+5708: if self.starting_year >= 2010:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7DA) != 0);
if (__pyx_t_10) {
/* … */
}
+5709: self.berrenda.project_contract['tableA'] = 0.02282922
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5709, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5709, __pyx_L1_error)
+5710: self.socal.project_contract['tableA'] = 0.648310
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5710, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5710, __pyx_L1_error)
+5711: for xnum in range(0, self.number_years):
__pyx_t_8 = __pyx_v_self->number_years;
__pyx_t_13 = __pyx_t_8;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_xnum = __pyx_t_14;
+5712: self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.648310)
__pyx_t_5 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_self->metropolitan->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5712, __pyx_L1_error) } __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->metropolitan->private_fraction, __pyx_n_u_SOC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(__pyx_t_4, __pyx_v_xnum, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; }
+5713: self.socal.private_fraction = [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.648310)]
__pyx_t_5 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->socal->private_fraction); __Pyx_DECREF(__pyx_v_self->socal->private_fraction); __pyx_v_self->socal->private_fraction = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
5714:
+5715: if self.starting_year >= 2002:
__pyx_t_10 = ((__pyx_v_self->starting_year >= 0x7D2) != 0);
if (__pyx_t_10) {
/* … */
}
+5716: self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
__pyx_t_4 = PyList_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5716, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_normal, __pyx_t_4) < 0)) __PYX_ERR(0, 5716, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5717: self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
__pyx_t_4 = PyList_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5717, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_reverse, __pyx_t_4) < 0)) __PYX_ERR(0, 5717, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5718: self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
__pyx_t_4 = PyList_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5718, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_closed, __pyx_t_4) < 0)) __PYX_ERR(0, 5718, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5719: self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
__pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5719, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_normal, __pyx_t_4) < 0)) __PYX_ERR(0, 5719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5720: self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
__pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5720, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_reverse, __pyx_t_4) < 0)) __PYX_ERR(0, 5720, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5721: self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
__pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5721, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_closed, __pyx_t_4) < 0)) __PYX_ERR(0, 5721, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5722: self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5722, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5722, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5722, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5723: self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5723, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5723, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5724: self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5724, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5724, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5725: self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5725, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5725, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5725, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5726: #self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
5727:
+5728: self.kwb.initial_recharge = 1212.12
__pyx_v_self->kwb->initial_recharge = 1212.12;
+5729: self.kwb.recovery = 0.7863
__pyx_v_self->kwb->recovery = 0.7863;
+5730: self.kwb.tot_storage = 2.4
__pyx_v_self->kwb->tot_storage = 2.4;
+5731: if (scenario == 'baseline'):
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5731, __pyx_L1_error) if (__pyx_t_10) { /* … */ goto __pyx_L44; }
+5732: do_nothing = 0
__pyx_v_do_nothing = 0;
+5733: elif (scenario['FKC'] == 'baseline'):
__pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_10) { /* … */ } __pyx_L44:;
+5734: self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5734, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5734, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal, __pyx_t_4) < 0)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5735:
+5736: self.kerndelta.in_district_direct_recharge = 165.0
__pyx_v_self->kerndelta->in_district_direct_recharge = 165.0;
+5737: self.kerndelta.in_district_storage = 0.326
__pyx_v_self->kerndelta->in_district_storage = 0.326;
+5738: self.buenavista.in_district_direct_recharge = 333.3
__pyx_v_self->buenavista->in_district_direct_recharge = 333.3;
+5739: self.buenavista.in_district_storage = 0.66
__pyx_v_self->buenavista->in_district_storage = 0.66;
+5740: self.rosedale.in_district_direct_recharge = 606.1
__pyx_v_self->rosedale->in_district_direct_recharge = 606.1;
+5741: self.rosedale.in_district_storage = 1.2
__pyx_v_self->rosedale->in_district_storage = 1.2;
5742:
+5743: self.swpdelta.total = 4056.0
__pyx_v_self->swpdelta->total = 4056.0;
+5744: if self.starting_year == 1996:
switch (__pyx_v_self->starting_year) {
case 0x7CC:
/* … */
break;
case 0x7CD:
+5745: self.swpdelta.max_allocation = 2977.0
__pyx_v_self->swpdelta->max_allocation = 2977.0;
+5746: elif self.starting_year == 1997:
break;
case 0x7CE:
+5747: self.swpdelta.max_allocation = 3191.0
__pyx_v_self->swpdelta->max_allocation = 3191.0;
+5748: elif self.starting_year == 1998:
break;
case 0x7CF:
+5749: self.swpdelta.max_allocation = 3214.0
__pyx_v_self->swpdelta->max_allocation = 3214.0;
+5750: elif self.starting_year == 1999:
break;
default:
+5751: self.swpdelta.max_allocation = 3617.0
__pyx_v_self->swpdelta->max_allocation = 3617.0;
5752: else:
+5753: self.swpdelta.max_allocation = 4056.0
__pyx_v_self->swpdelta->max_allocation = 4056.0;
break;
}
5754:
+5755: request_empty = self.swpdelta.total - self.swpdelta.max_allocation
__pyx_v_request_empty = (__pyx_v_self->swpdelta->total - __pyx_v_self->swpdelta->max_allocation);
+5756: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5756, __pyx_L1_error)
}
__pyx_t_4 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5756, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5756, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5756, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5757: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
+5758: for contract in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5758, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__pyx_L48_break:;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5759: if contract == 'tableA':
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5759, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+5760: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
+5761: break
goto __pyx_L48_break;
+5762: if contractor_toggle == 1:
__pyx_t_10 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_10) {
/* … */
}
+5763: if district_obj.key == "SOC":
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5763, __pyx_L1_error) __pyx_t_1 = (__pyx_t_10 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L51; }
+5764: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total - request_empty
__pyx_v_district_obj->table_a_request = ((__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total) - __pyx_v_request_empty);
+5765: elif district_obj.key == "SOB":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5765, __pyx_L1_error) __pyx_t_10 = (__pyx_t_1 != 0); if (__pyx_t_10) { /* … */ goto __pyx_L51; }
+5766: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
+5767: elif district_obj.key == "CCA":
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_CCA, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5767, __pyx_L1_error) __pyx_t_1 = (__pyx_t_10 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L51; }
+5768: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
5769: else:
+5770: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
/*else*/ {
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
}
__pyx_L51:;
+5771: self.swpdelta.total = self.swpdelta.max_allocation
__pyx_t_15 = __pyx_v_self->swpdelta->max_allocation; __pyx_v_self->swpdelta->total = __pyx_t_15;
+5772: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5772, __pyx_L1_error)
}
__pyx_t_4 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5772, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5772, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5773: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
+5774: for contract in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5774, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5774, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5774, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__pyx_L55_break:;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5775: if contract == 'tableA':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5775, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+5776: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
+5777: break
goto __pyx_L55_break;
+5778: if contractor_toggle == 1:
__pyx_t_1 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_1) {
/* … */
}
+5779: district_obj.project_contract['tableA'] = district_obj.table_a_request/self.swpdelta.total
if (unlikely(__pyx_v_self->swpdelta->total == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 5779, __pyx_L1_error)
}
__pyx_t_5 = PyFloat_FromDouble((__pyx_v_district_obj->table_a_request / __pyx_v_self->swpdelta->total)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5779, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->project_contract, __pyx_n_u_tableA, __pyx_t_5) < 0)) __PYX_ERR(0, 5779, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5780:
5781:
5782:
+5783: def update_regulations_south(self,t,dowy,m,y, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_91update_regulations_south(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_91update_regulations_south(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_y = 0;
PyObject *__pyx_v_wateryear = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_regulations_south (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_y,&__pyx_n_s_wateryear,0};
PyObject* values[5] = {0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 5, 5, 1); __PYX_ERR(0, 5783, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 5, 5, 2); __PYX_ERR(0, 5783, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 5, 5, 3); __PYX_ERR(0, 5783, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 5, 5, 4); __PYX_ERR(0, 5783, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_regulations_south") < 0)) __PYX_ERR(0, 5783, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
}
__pyx_v_t = values[0];
__pyx_v_dowy = values[1];
__pyx_v_m = values[2];
__pyx_v_y = values[3];
__pyx_v_wateryear = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5783, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_regulations_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_90update_regulations_south(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_90update_regulations_south(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_y, PyObject *__pyx_v_wateryear) {
struct __pyx_obj_11calfews_src_11district_cy_District *__pyx_v_district_obj = 0;
struct __pyx_obj_11calfews_src_10private_cy_Private *__pyx_v_private_obj = 0;
struct __pyx_obj_11calfews_src_11contract_cy_Contract *__pyx_v_contract_obj = 0;
PyObject *__pyx_v_expected_outflow_releases = NULL;
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_v_sjrrwyt = NULL;
PyObject *__pyx_v_district_key = NULL;
double __pyx_v_request_empty;
long __pyx_v_contractor_toggle;
PyObject *__pyx_v_contract_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_regulations_south", 0);
__Pyx_TraceCall("update_regulations_south", __pyx_f[0], 5783, 0, __PYX_ERR(0, 5783, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_regulations_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_district_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_private_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_contract_obj);
__Pyx_XDECREF(__pyx_v_expected_outflow_releases);
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XDECREF(__pyx_v_sjrrwyt);
__Pyx_XDECREF(__pyx_v_district_key);
__Pyx_XDECREF(__pyx_v_contract_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
5784: ##San Joaquin River Restoration Project, started in October of 2009 (WY 2009)
5785: cdef District district_obj
5786: cdef Private private_obj
5787: cdef Contract contract_obj
5788:
5789: ##Additional Releases from Millerton Lake depending on WYT
+5790: if y >= 2006:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2006, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5790, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5790, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5791: self.semitropic.leiu_recovery = 0.7945
__pyx_v_self->semitropic->leiu_recovery = 0.7945;
+5792: if y == 2009 and dowy == 1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+5793: expected_outflow_releases = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5794: for wyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5794, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5795: expected_outflow_releases[wyt] = np.zeros(366)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_366); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_5) < 0)) __PYX_ERR(0, 5795, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5796: self.millerton.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 1)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_7 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_int_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_8, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_7, __pyx_int_1}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[5] = {__pyx_t_8, ((PyObject *)__pyx_v_self), __pyx_v_expected_outflow_releases, __pyx_t_7, __pyx_int_1}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_6 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_9, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_v_expected_outflow_releases); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_9, __pyx_v_expected_outflow_releases); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_9, __pyx_t_7); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_9, __pyx_int_1); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5797:
+5798: if y == 2009 and m >= 10:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L10_bool_binop_done; } __pyx_t_1 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5798, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L10_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L9; }
+5799: self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_t, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_t, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_v_dowy); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5799, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->millerton->sjrr_release = __pyx_t_10;
+5800: for sjrrwyt in ['W', 'AN', 'BN', 'D', 'C']:
__pyx_t_1 = __pyx_tuple__3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5800, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_XDECREF_SET(__pyx_v_sjrrwyt, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5801: self.millerton.carryover_target[sjrrwyt] = 250.0
if (unlikely(__pyx_v_self->millerton->carryover_target == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5801, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->millerton->carryover_target, __pyx_v_sjrrwyt, __pyx_float_250_0) < 0)) __PYX_ERR(0, 5801, __pyx_L1_error)
+5802: self.millerton.max_carryover_target = 250.0
__pyx_v_self->millerton->max_carryover_target = 250.0;
+5803: elif y > 2009:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2009, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5803, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5803, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ } __pyx_L9:;
+5804: self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->millerton), __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_dowy}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_9, __pyx_v_t); __Pyx_INCREF(__pyx_v_dowy); __Pyx_GIVEREF(__pyx_v_dowy); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_9, __pyx_v_dowy); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5804, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->millerton->sjrr_release = __pyx_t_10;
+5805: if t == 3089:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3089, 0xC11, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5806: self.kaweah.capacity = 180.0
__pyx_v_self->kaweah->capacity = 180.0;
+5807: self.kaweah.tocs_rule['storage'] = [[180,63,63,180,180], [180,63,63,180,180]]
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_180); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_63); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_63); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_180); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_180); __pyx_t_5 = PyList_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_int_180); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_63); __Pyx_INCREF(__pyx_int_63); __Pyx_GIVEREF(__pyx_int_63); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_63); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_int_180); __Pyx_INCREF(__pyx_int_180); __Pyx_GIVEREF(__pyx_int_180); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_180); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->kaweah->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5807, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kaweah->tocs_rule, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5808: if t == 3451:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3451, 0xD7B, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5808, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+5809: self.isabella.capacity = 400.0
__pyx_v_self->isabella->capacity = 400.0;
+5810: self.isabella.tocs_rule['storage'] = [[302.6,245,245,245,245,400,400,302.6], [302.6,245,245,245,245,400,400,302.6]]
__pyx_t_6 = PyList_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_6, 4, __pyx_int_245); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_6, 5, __pyx_int_400); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_6, 6, __pyx_int_400); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_6, 7, __pyx_float_302_6); __pyx_t_5 = PyList_New(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_245); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_int_400); __Pyx_INCREF(__pyx_int_400); __Pyx_GIVEREF(__pyx_int_400); PyList_SET_ITEM(__pyx_t_5, 6, __pyx_int_400); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 7, __pyx_float_302_6); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->isabella->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5810, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->isabella->tocs_rule, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5810, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5811: self.kernriver.carryover = 170.0
__pyx_v_self->kernriver->carryover = 170.0;
+5812: if t == 3816:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3816, 0xEE8, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5812, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5813: self.isabella.capacity = 361.25
__pyx_v_self->isabella->capacity = 361.25;
+5814: self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6], [302.6,170,170,245,245,361.25,361.25,302.6]]
__pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_302_6); __pyx_t_5 = PyList_New(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_302_6); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_170); __Pyx_INCREF(__pyx_int_170); __Pyx_GIVEREF(__pyx_int_170); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_170); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_int_245); __Pyx_INCREF(__pyx_int_245); __Pyx_GIVEREF(__pyx_int_245); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_245); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_361_25); __Pyx_GIVEREF(__pyx_float_361_25); PyList_SET_ITEM(__pyx_t_5, 6, __pyx_float_361_25); __Pyx_INCREF(__pyx_float_302_6); __Pyx_GIVEREF(__pyx_float_302_6); PyList_SET_ITEM(__pyx_t_5, 7, __pyx_float_302_6); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->isabella->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5814, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->isabella->tocs_rule, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5815: self.kernriver.carryover = 170.0
__pyx_v_self->kernriver->carryover = 170.0;
+5816: if t == 2985:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_2985, 0xBA9, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5816, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+5817: self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,41.0,41.0,36.8] , [36.8,6.5,6.5,41.0,41.0,36.8]]
__pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_36_8); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_36_8); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5817, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5817, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5818: if t == 3350:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3350, 0xD16, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5819: self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,65.0,65.0,36.8]]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_36_8); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5819, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5819, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5820: if t == 3715:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3715, 0xE83, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5820, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+5821: self.success.tocs_rule['storage'] = [[29.2,6.5,6.5,29.2,29.2,29.2] , [29.2,6.5,6.5,29.2,29.2,29.2]]
__pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_29_2); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_29_2); __Pyx_INCREF(__pyx_float_29_2); __Pyx_GIVEREF(__pyx_float_29_2); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_29_2); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5821, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5822: if t == 4445:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_4445, 0x115D, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5822, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5823: self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,41.0,41.0,36.8] , [36.8,6.5,6.5,41.0,41.0,36.8]]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_41_0); __Pyx_GIVEREF(__pyx_float_41_0); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_41_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_36_8); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5823, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5823, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5824: if t == 5540:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_5540, 0x15A4, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+5825: self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,65.0,65.0,36.8]]
__pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_36_8); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_36_8); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5825, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5826: if t == 6270:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_6270, 0x187E, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5827: self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,82.3,82.3,36.8]]
__pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_65_0); __Pyx_GIVEREF(__pyx_float_65_0); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_65_0); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8); __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_36_8); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_6_5); __Pyx_GIVEREF(__pyx_float_6_5); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_float_6_5); __Pyx_INCREF(__pyx_float_82_3); __Pyx_GIVEREF(__pyx_float_82_3); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_82_3); __Pyx_INCREF(__pyx_float_82_3); __Pyx_GIVEREF(__pyx_float_82_3); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_float_82_3); __Pyx_INCREF(__pyx_float_36_8); __Pyx_GIVEREF(__pyx_float_36_8); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_36_8); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_self->success->tocs_rule == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5827, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->success->tocs_rule, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5828:
+5829: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5829, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5829, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5829, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5830: district_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_district_obj->carryover_rights); __Pyx_DECREF(__pyx_v_district_obj->carryover_rights); __pyx_v_district_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+5831: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5831, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5831, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5831, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5831, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_1));
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5832: if contract_obj.type == 'right':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5832, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L27; }
+5833: district_obj.carryover_rights[contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5833, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5833, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_t_7) < 0)) __PYX_ERR(0, 5833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5834: else:
+5835: district_obj.carryover_rights[contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_district_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5835, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->carryover_rights, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5835, __pyx_L1_error)
}
__pyx_L27:;
+5836: for private_obj in self.private_list:
if (unlikely(__pyx_v_self->private_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5836, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->private_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5836, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5836, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5837: private_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+5838: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5838, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5838, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5839: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5839, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5839, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5839, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
+5840: private_obj.carryover_rights[district_key] = {}
__pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5840, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_7) < 0)) __PYX_ERR(0, 5840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5841: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5841, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5841, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5841, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5841, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_8));
__pyx_t_8 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5842: if contract_obj.type == 'right':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5842, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L34; }
+5843: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][wateryear]
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5843, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5843, __pyx_L1_error) } __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5843, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_contract_obj->name, __pyx_t_13) < 0)) __PYX_ERR(0, 5843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
5844: else:
+5845: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5845, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__pyx_L34:;
+5846: for private_obj in self.city_list:
if (unlikely(__pyx_v_self->city_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5846, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->city_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5846, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5846, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_10private_cy_Private))))) __PYX_ERR(0, 5846, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_private_obj, ((struct __pyx_obj_11calfews_src_10private_cy_Private *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5847: private_obj.carryover_rights = {}
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_private_obj->carryover_rights); __Pyx_DECREF(__pyx_v_private_obj->carryover_rights); __pyx_v_private_obj->carryover_rights = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+5848: for district_key in private_obj.district_list:
if (unlikely(__pyx_v_private_obj->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5848, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_private_obj->district_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5848, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5848, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_district_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5849: district_obj = self.district_keys[district_key]
if (unlikely(__pyx_v_self->district_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5849, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->district_keys, __pyx_v_district_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5849, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_7));
__pyx_t_7 = 0;
+5850: private_obj.carryover_rights[district_key] = {}
__pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5850, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key, __pyx_t_7) < 0)) __PYX_ERR(0, 5850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5851: for contract_obj in self.contract_list:
if (unlikely(__pyx_v_self->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5851, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_self->contract_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_13); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5851, __pyx_L1_error)
#else
__pyx_t_13 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_11calfews_src_11contract_cy_Contract))))) __PYX_ERR(0, 5851, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_contract_obj, ((struct __pyx_obj_11calfews_src_11contract_cy_Contract *)__pyx_t_13));
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5852: if contract_obj.type == 'right':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_obj->type, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5852, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L41; }
+5853: private_obj.carryover_rights[district_key][contract_obj.name] = contract_obj.carryover*district_obj.rights[contract_obj.name]['carryover']*private_obj.private_fraction[district_key][wateryear]
__pyx_t_13 = PyFloat_FromDouble(__pyx_v_contract_obj->carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(__pyx_v_district_obj->rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5853, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_district_obj->rights, __pyx_v_contract_obj->name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Multiply(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_private_obj->private_fraction == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5853, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->private_fraction, __pyx_v_district_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5853, __pyx_L1_error) } __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_v_contract_obj->name, __pyx_t_1) < 0)) __PYX_ERR(0, 5853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5854: else:
+5855: private_obj.carryover_rights[district_key][contract_obj.name] = 0.0
/*else*/ {
if (unlikely(__pyx_v_private_obj->carryover_rights == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5855, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_private_obj->carryover_rights, __pyx_v_district_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_contract_obj->name, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L41:;
5856:
5857:
+5858: if y == 2009 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5858, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L43_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5858, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L43_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5859: self.poso.initial_recharge = 420.0
__pyx_v_self->poso->initial_recharge = 420.0;
+5860: self.poso.recovery = 0.6942
__pyx_v_self->poso->recovery = 0.6942;
+5861: self.poso.tot_storage = 2.1
__pyx_v_self->poso->tot_storage = 2.1;
+5862: self.find_all_triggers()
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5863: self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5863, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5863, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__pyx_v_self->fkc->capacity == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5863, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->fkc->capacity, __pyx_n_u_normal, __pyx_t_6) < 0)) __PYX_ERR(0, 5863, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5864:
5865:
+5866: if y == 2010 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2010, 0x7DA, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5866, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L46_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5866, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L46_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5867: self.irvineranch.initial_recharge = 300.0
__pyx_v_self->irvineranch->initial_recharge = 300.0;
+5868: self.irvineranch.recovery = 0.0479
__pyx_v_self->irvineranch->recovery = 0.0479;
+5869: self.irvineranch.tot_storage = 0.594
__pyx_v_self->irvineranch->tot_storage = 0.594;
5870:
+5871: if y == 1998 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1998, 0x7CE, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L49_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L49_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5872: self.berrenda.project_contract['tableA'] = 0.032076
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5872, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_032076) < 0)) __PYX_ERR(0, 5872, __pyx_L1_error)
+5873: self.socal.project_contract['tableA'] = 0.63338264299
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5873, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_63338264299) < 0)) __PYX_ERR(0, 5873, __pyx_L1_error)
+5874: if y == 1999 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1999, 0x7CF, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5874, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L52_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5874, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L52_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5875: self.belridge.project_contract['tableA'] = 0.03636
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5875, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_03636) < 0)) __PYX_ERR(0, 5875, __pyx_L1_error)
+5876: if y == 2000 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2000, 0x7D0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L55_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L55_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5877: self.southbay.project_contract['tableA'] = 0.05177514792
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5877, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_05177514792) < 0)) __PYX_ERR(0, 5877, __pyx_L1_error)
+5878: self.belridge.project_contract['tableA'] = 0.03538
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5878, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_03538) < 0)) __PYX_ERR(0, 5878, __pyx_L1_error)
+5879: self.berrenda.project_contract['tableA'] = 0.03035
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5879, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_03035) < 0)) __PYX_ERR(0, 5879, __pyx_L1_error)
+5880: self.losthills.project_contract['tableA'] = 0.0293663708
if (unlikely(__pyx_v_self->losthills->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5880, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->losthills->project_contract, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5880, __pyx_L1_error)
+5881: self.wheeler.project_contract['tableA'] = 0.04858926015
if (unlikely(__pyx_v_self->wheeler->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5881, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->wheeler->project_contract, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5881, __pyx_L1_error)
+5882: self.socal.project_contract['tableA'] = 0.64423076923
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5882, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_64423076923) < 0)) __PYX_ERR(0, 5882, __pyx_L1_error)
+5883: if y == 2001 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2001, 0x7D1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L58_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L58_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5884: self.southbay.project_contract['tableA'] = 0.05424063116
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5884, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_05424063116) < 0)) __PYX_ERR(0, 5884, __pyx_L1_error)
+5885: self.belridge.project_contract['tableA'] = 0.0305
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5885, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_0305) < 0)) __PYX_ERR(0, 5885, __pyx_L1_error)
+5886: self.berrenda.project_contract['tableA'] = 0.02837
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5886, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02837) < 0)) __PYX_ERR(0, 5886, __pyx_L1_error)
+5887: if y == 2004 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2004, 0x7D4, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L61_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L61_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5888: self.belridge.project_contract['tableA'] = 0.02995607
if (unlikely(__pyx_v_self->belridge->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5888, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->belridge->project_contract, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5888, __pyx_L1_error)
+5889: self.berrenda.project_contract['tableA'] = 0.02677
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5889, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02677) < 0)) __PYX_ERR(0, 5889, __pyx_L1_error)
+5890: self.southbay.project_contract['tableA'] = 0.0548863
if (unlikely(__pyx_v_self->southbay->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5890, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->southbay->project_contract, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5890, __pyx_L1_error)
+5891: self.westkern.project_contract['tableA'] = 0.00776587
if (unlikely(__pyx_v_self->westkern->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5891, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->westkern->project_contract, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5891, __pyx_L1_error)
+5892: if y == 2010 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2010, 0x7DA, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L64_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L64_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5893: self.berrenda.project_contract['tableA'] = 0.02282922
if (unlikely(__pyx_v_self->berrenda->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5893, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->berrenda->project_contract, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5893, __pyx_L1_error)
+5894: self.socal.project_contract['tableA'] = 0.648310
if (unlikely(__pyx_v_self->socal->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5894, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->socal->project_contract, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5894, __pyx_L1_error)
5895:
+5896: if y == 2002 and dowy == 1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2002, 0x7D2, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L67_bool_binop_done; } __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_2; __pyx_L67_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5897: self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
__pyx_t_6 = PyList_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5897, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_normal, __pyx_t_6) < 0)) __PYX_ERR(0, 5897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5898: self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
__pyx_t_6 = PyList_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5898, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_reverse, __pyx_t_6) < 0)) __PYX_ERR(0, 5898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5899: self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
__pyx_t_6 = PyList_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->capacity == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5899, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->capacity, __pyx_n_u_closed, __pyx_t_6) < 0)) __PYX_ERR(0, 5899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5900: self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
__pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_800_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5900, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_normal, __pyx_t_6) < 0)) __PYX_ERR(0, 5900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5901: self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
__pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_440_0); __Pyx_GIVEREF(__pyx_float_440_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_440_0); __Pyx_INCREF(__pyx_float_800_0); __Pyx_GIVEREF(__pyx_float_800_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_800_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5901, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_reverse, __pyx_t_6) < 0)) __PYX_ERR(0, 5901, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5902: self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
__pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_0_0); __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_0_0); if (unlikely(__pyx_v_self->kwbcanal->turnout == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5902, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->kwbcanal->turnout, __pyx_n_u_closed, __pyx_t_6) < 0)) __PYX_ERR(0, 5902, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5903: self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5903, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5903, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5903, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5904: self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5904, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5904, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5904, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5905: self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5905, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5905, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5906: self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
if (unlikely(__pyx_v_self->kwbcanal->flow_directions == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5906, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->kwbcanal->flow_directions, __pyx_n_u_recovery); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5907: #self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
5908:
+5909: self.kwb.initial_recharge = 1212.12
__pyx_v_self->kwb->initial_recharge = 1212.12;
+5910: self.kwb.recovery = 0.7863
__pyx_v_self->kwb->recovery = 0.7863;
+5911: self.kwb.tot_storage = 2.4
__pyx_v_self->kwb->tot_storage = 2.4;
+5912: self.init_tot_recovery()
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_init_tot_recovery); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5913: self.kerndelta.in_district_direct_recharge = 165.0
__pyx_v_self->kerndelta->in_district_direct_recharge = 165.0;
+5914: self.kerndelta.in_district_storage = 0.326
__pyx_v_self->kerndelta->in_district_storage = 0.326;
+5915: self.buenavista.in_district_direct_recharge = 333.3
__pyx_v_self->buenavista->in_district_direct_recharge = 333.3;
+5916: self.buenavista.in_district_storage = 0.66
__pyx_v_self->buenavista->in_district_storage = 0.66;
+5917: self.rosedale.in_district_direct_recharge = 606.1
__pyx_v_self->rosedale->in_district_direct_recharge = 606.1;
+5918: self.rosedale.in_district_storage = 1.2
__pyx_v_self->rosedale->in_district_storage = 1.2;
5919:
5920:
+5921: self.find_all_triggers()
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5922:
5923: ####Calculates the requests for SWP allocations in WY 1997-2000
5924: ###when less than full allocation was requested by MWD. This is unlikely to
5925: ###occur in the future
+5926: self.swpdelta.total = 4056.0
__pyx_v_self->swpdelta->total = 4056.0;
+5927: if y == 1996:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1996, 0x7CC, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5927, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L69; }
+5928: self.swpdelta.max_allocation = 2977.0
__pyx_v_self->swpdelta->max_allocation = 2977.0;
+5929: elif y == 1997:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1997, 0x7CD, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5929, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L69; }
+5930: self.swpdelta.max_allocation = 3191.0
__pyx_v_self->swpdelta->max_allocation = 3191.0;
+5931: elif y == 1998:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1998, 0x7CE, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L69; }
+5932: self.swpdelta.max_allocation = 3214.0
__pyx_v_self->swpdelta->max_allocation = 3214.0;
+5933: elif y == 1999:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1999, 0x7CF, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5933, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L69; }
+5934: self.swpdelta.max_allocation = 3617.0
__pyx_v_self->swpdelta->max_allocation = 3617.0;
5935: else:
+5936: self.swpdelta.max_allocation = 4056.0
/*else*/ {
__pyx_v_self->swpdelta->max_allocation = 4056.0;
}
__pyx_L69:;
5937:
+5938: request_empty = self.swpdelta.total - self.swpdelta.max_allocation
__pyx_v_request_empty = (__pyx_v_self->swpdelta->total - __pyx_v_self->swpdelta->max_allocation);
+5939: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5939, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5939, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5939, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5939, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5940: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
+5941: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5941, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5941, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5942: if contract_key == 'tableA':
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5942, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+5943: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
+5944: if contractor_toggle == 1:
__pyx_t_3 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_3) {
/* … */
}
+5945: if district_obj.key == "SOC":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5945, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L76; }
+5946: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total - request_empty
__pyx_v_district_obj->table_a_request = ((__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total) - __pyx_v_request_empty);
+5947: elif district_obj.key == "SOB":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5947, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L76; }
+5948: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
+5949: elif district_obj.key == "CCA":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_district_obj->key, __pyx_n_u_CCA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5949, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L76; }
+5950: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
5951: else:
+5952: district_obj.table_a_request = district_obj.initial_table_a*self.swpdelta.total
/*else*/ {
__pyx_v_district_obj->table_a_request = (__pyx_v_district_obj->initial_table_a * __pyx_v_self->swpdelta->total);
}
__pyx_L76:;
+5953: self.swpdelta.total = self.swpdelta.max_allocation
__pyx_t_10 = __pyx_v_self->swpdelta->max_allocation; __pyx_v_self->swpdelta->total = __pyx_t_10;
+5954: for district_obj in self.district_list:
if (unlikely(__pyx_v_self->district_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5954, __pyx_L1_error)
}
__pyx_t_6 = __pyx_v_self->district_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5954, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11calfews_src_11district_cy_District))))) __PYX_ERR(0, 5954, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_district_obj, ((struct __pyx_obj_11calfews_src_11district_cy_District *)__pyx_t_5));
__pyx_t_5 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5955: contractor_toggle = 0
__pyx_v_contractor_toggle = 0;
+5956: for contract_key in district_obj.contract_list:
if (unlikely(__pyx_v_district_obj->contract_list == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5956, __pyx_L1_error)
}
__pyx_t_5 = __pyx_v_district_obj->contract_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
for (;;) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5956, __pyx_L1_error)
#else
__pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5956, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_XDECREF_SET(__pyx_v_contract_key, __pyx_t_7);
__pyx_t_7 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5957: if contract_key == 'tableA':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_contract_key, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5957, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+5958: contractor_toggle = 1
__pyx_v_contractor_toggle = 1;
+5959: if contractor_toggle == 1:
__pyx_t_2 = ((__pyx_v_contractor_toggle == 1) != 0);
if (__pyx_t_2) {
/* … */
}
+5960: district_obj.project_contract['tableA'] = district_obj.table_a_request/self.swpdelta.total
if (unlikely(__pyx_v_self->swpdelta->total == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 5960, __pyx_L1_error)
}
__pyx_t_5 = PyFloat_FromDouble((__pyx_v_district_obj->table_a_request / __pyx_v_self->swpdelta->total)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_v_district_obj->project_contract == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5960, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_district_obj->project_contract, __pyx_n_u_tableA, __pyx_t_5) < 0)) __PYX_ERR(0, 5960, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5961:
5962:
+5963: def update_regulations_north(self,t,dowy,y):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_93update_regulations_north(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_93update_regulations_north(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_v_y = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_regulations_north (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_y,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 3, 3, 1); __PYX_ERR(0, 5963, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 3, 3, 2); __PYX_ERR(0, 5963, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_regulations_north") < 0)) __PYX_ERR(0, 5963, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_t = values[0];
__pyx_v_dowy = values[1];
__pyx_v_y = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5963, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_regulations_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_92update_regulations_north(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_dowy, __pyx_v_y);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_92update_regulations_north(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_y) {
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_regulations_north", 0);
__Pyx_TraceCall("update_regulations_north", __pyx_f[0], 5963, 0, __PYX_ERR(0, 5963, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("calfews_src.model_cy.Model.update_regulations_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
5964:
5965: ##Yuba River Accalfews_src, started in Jan of 2006 (repaces minimum flow requirements)
+5966: if y >= 2006:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2006, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5966, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5966, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+5967: self.yuba.env_min_flow = self.yuba.env_min_flow_ya
__pyx_t_1 = __pyx_v_self->yuba->env_min_flow_ya;
__Pyx_INCREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->yuba->env_min_flow);
__Pyx_DECREF(__pyx_v_self->yuba->env_min_flow);
__pyx_v_self->yuba->env_min_flow = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5968: self.yuba.temp_releases = self.yuba.temp_releases_ya
__pyx_t_1 = __pyx_v_self->yuba->temp_releases_ya;
__Pyx_INCREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->yuba->temp_releases);
__Pyx_DECREF(__pyx_v_self->yuba->temp_releases);
__pyx_v_self->yuba->temp_releases = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
5969:
+5970: if y == 2008 and dowy == 1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2008, 0x7D8, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+5971: for x in range(318, 334):
for (__pyx_t_4 = 0x13E; __pyx_t_4 < 0x14E; __pyx_t_4+=1) {
__pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
__pyx_t_1 = 0;
+5972: self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_5, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_1, 77.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5972, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_x, __pyx_t_5) < 0)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5973: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5973, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5973, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
5974:
+5975: for x in range(334,366):
for (__pyx_t_4 = 0x14E; __pyx_t_4 < 0x16E; __pyx_t_4+=1) {
__pyx_t_5 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
__pyx_t_5 = 0;
+5976: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5976, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5976, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5977: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5977, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5977, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
+5978: for x in range(0, 30):
for (__pyx_t_4 = 0; __pyx_t_4 < 30; __pyx_t_4+=1) {
__pyx_t_5 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
__pyx_t_5 = 0;
+5979: self.delta.x2constraint['W'][x] = 74.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5979, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_W); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5979, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5979, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5980: self.delta.x2constraint['AN'][x] = 81.0
if (unlikely(__pyx_v_self->delta->x2constraint == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5980, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->x2constraint, __pyx_n_u_AN); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5980, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
5981:
5982: #tucp orders during the drought can be found here:
5983: #https://www.waterboards.ca.gov/waterrights/water_issues/programs/drought/tucp/index.html
+5984: if y == 2014 and dowy == 123:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5984, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L14_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_123, 0x7B, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5984, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L14_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L13; }
+5985: self.delta.min_outflow['C'][1] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5985, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 1, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5985, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5986: self.delta.min_outflow['C'][2] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5986, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5986, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5987: self.delta.min_outflow['C'][3] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5987, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 3, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5987, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5988: self.delta.min_outflow['C'][4] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5988, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 4, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5988, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5989: self.delta.min_outflow['C'][5] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5989, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 5, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5990: self.delta.min_outflow['C'][6] = 3000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5990, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 6, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5990, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5991:
+5992: self.delta.rio_vista_min['C'][8] = 2000
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5992, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5992, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 8, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5992, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5993: self.delta.rio_vista_min['C'][9] = 2000
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5993, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5993, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 9, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5993, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5994: self.delta.rio_vista_min['C'][10] = 2000
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5994, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 10, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5994, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5995: elif y == 2014 and dowy == 228:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L16_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_228, 0xE4, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L16_bool_binop_done:; if (__pyx_t_2) { /* … */ } __pyx_L13:;
+5996: self.delta.san_joaquin_min_flow['C'][2] = 500
if (unlikely(__pyx_v_self->delta->san_joaquin_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5996, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->san_joaquin_min_flow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5997: if y == 2014 and dowy == 1:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L19_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L19_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L18; }
+5998: self.delta.san_joaquin_min_flow['C'][2] = 500
if (unlikely(__pyx_v_self->delta->san_joaquin_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5998, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->san_joaquin_min_flow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5998, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5999: self.delta.rio_vista_min['C'][8] = 2500
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5999, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5999, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 8, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5999, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6000: self.delta.rio_vista_min['C'][9] = 2500
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6000, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6000, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 9, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6000, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6001: self.delta.rio_vista_min['C'][10] = 2500
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6001, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 10, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6001, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6002: self.delta.new_vamp_rule['C'] = 710.0
if (unlikely(__pyx_v_self->delta->new_vamp_rule == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6002, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->delta->new_vamp_rule, __pyx_n_u_C, __pyx_float_710_0) < 0)) __PYX_ERR(0, 6002, __pyx_L1_error)
+6003: elif y == 2015 and dowy == 228:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L21_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_228, 0xE4, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L21_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L18; }
+6004: self.delta.san_joaquin_min_flow['C'][2] = 300
if (unlikely(__pyx_v_self->delta->san_joaquin_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6004, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->san_joaquin_min_flow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_300, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6004, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6005: elif y == 2015 and dowy == 242:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L23_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_242, 0xF2, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L23_bool_binop_done:; if (__pyx_t_2) { /* … */ } __pyx_L18:;
+6006: self.delta.san_joaquin_min_flow['C'][2] = 200
if (unlikely(__pyx_v_self->delta->san_joaquin_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6006, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->san_joaquin_min_flow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_200, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6006, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6007:
6008: #expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self.shasta.downstream,self.oroville.downstream,self.yuba.downstream,self.folsom.downstream, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases)
6009: #expected_outflow_req = self.delta.min_outflow
6010: #expected_outflow_req['EC'] = expected_outflow_req['C']
6011: #inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville]
6012: #for x in inflow_list:
6013: #x.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
6014:
+6015: if y == 2015 and dowy == 1:
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6015, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L26_bool_binop_done; } __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6015, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L26_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+6016: self.delta.min_outflow['C'][1] = 7100
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6016, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6016, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 1, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6016, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6017: self.delta.min_outflow['C'][2] = 7100
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6017, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6017, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6018: self.delta.min_outflow['C'][3] = 7100
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6018, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6018, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 3, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6018, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6019: self.delta.min_outflow['C'][4] = 7100
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6019, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 4, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6019, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6020: self.delta.min_outflow['C'][5] = 7100
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6020, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 5, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6020, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6021: self.delta.min_outflow['C'][6] = 4000
if (unlikely(__pyx_v_self->delta->min_outflow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6021, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->min_outflow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6021, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 6, __pyx_int_4000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6021, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6022: self.delta.san_joaquin_min_flow['C'][2] = 1140
if (unlikely(__pyx_v_self->delta->san_joaquin_min_flow == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6022, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->san_joaquin_min_flow, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6022, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 2, __pyx_int_1140, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6022, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6023: self.delta.rio_vista_min['C'][8] = 3000
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6023, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6023, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 8, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6023, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6024: self.delta.rio_vista_min['C'][9] = 3000
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6024, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 9, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6024, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6025: self.delta.rio_vista_min['C'][10] = 3500
if (unlikely(__pyx_v_self->delta->rio_vista_min == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6025, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->rio_vista_min, __pyx_n_u_C); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_SetItemInt(__pyx_t_5, 10, __pyx_int_3500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 6025, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6026: self.delta.new_vamp_rule['C'] = 1500.0
if (unlikely(__pyx_v_self->delta->new_vamp_rule == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6026, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->delta->new_vamp_rule, __pyx_n_u_C, __pyx_float_1500_0) < 0)) __PYX_ERR(0, 6026, __pyx_L1_error)
6027:
6028: #expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self.shasta.downstream,self.oroville.downstream,self.yuba.downstream,self.folsom.downstream, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases)
6029: #expected_outflow_req = self.delta.min_outflow
6030: #expected_outflow_req['EC'] = expected_outflow_req['C']
6031: #inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville]
6032: #for x in inflow_list:
6033: #x.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
6034:
6035:
+6036: def proj_gains(self,t, dowy, m, year_index):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_95proj_gains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_95proj_gains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_v_m = 0;
PyObject *__pyx_v_year_index = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("proj_gains (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_year_index,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("proj_gains", 1, 4, 4, 1); __PYX_ERR(0, 6036, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("proj_gains", 1, 4, 4, 2); __PYX_ERR(0, 6036, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("proj_gains", 1, 4, 4, 3); __PYX_ERR(0, 6036, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "proj_gains") < 0)) __PYX_ERR(0, 6036, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_t = values[0];
__pyx_v_dowy = values[1];
__pyx_v_m = values[2];
__pyx_v_year_index = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("proj_gains", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6036, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.proj_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_94proj_gains(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_94proj_gains(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_year_index) {
struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *__pyx_v_reservoir_obj = 0;
PyObject *__pyx_v_tot_sac_fnf = NULL;
PyObject *__pyx_v_tot_sj_fnf = NULL;
PyObject *__pyx_v_proj_surplus = NULL;
PyObject *__pyx_v_proj_omr = NULL;
long __pyx_v_x;
PyObject *__pyx_v_daysmonth = NULL;
PyObject *__pyx_v_expected_pumping = NULL;
PyObject *__pyx_v_max_pumping = NULL;
long __pyx_v_monthloop;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("proj_gains", 0);
__Pyx_TraceCall("proj_gains", __pyx_f[0], 6036, 0, __PYX_ERR(0, 6036, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("calfews_src.model_cy.Model.proj_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_reservoir_obj);
__Pyx_XDECREF(__pyx_v_tot_sac_fnf);
__Pyx_XDECREF(__pyx_v_tot_sj_fnf);
__Pyx_XDECREF(__pyx_v_proj_surplus);
__Pyx_XDECREF(__pyx_v_proj_omr);
__Pyx_XDECREF(__pyx_v_daysmonth);
__Pyx_XDECREF(__pyx_v_expected_pumping);
__Pyx_XDECREF(__pyx_v_max_pumping);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6037: cdef Reservoir reservoir_obj
+6038: tot_sac_fnf = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_tot_sac_fnf = __pyx_float_0_0;
+6039: tot_sj_fnf = 0.0
__Pyx_INCREF(__pyx_float_0_0);
__pyx_v_tot_sj_fnf = __pyx_float_0_0;
+6040: proj_surplus = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_proj_surplus = __pyx_t_1; __pyx_t_1 = 0;
+6041: proj_omr = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_proj_omr = __pyx_t_1; __pyx_t_1 = 0;
+6042: for reservoir_obj in [self.shasta, self.oroville, self.yuba, self.folsom]:
__pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->shasta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->shasta)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->shasta)); __Pyx_INCREF(((PyObject *)__pyx_v_self->oroville)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->oroville)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->oroville)); __Pyx_INCREF(((PyObject *)__pyx_v_self->yuba)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->yuba)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_self->yuba)); __Pyx_INCREF(((PyObject *)__pyx_v_self->folsom)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->folsom)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_self->folsom)); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_4 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 6042, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6043: if t < 30:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6043, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L5; }
+6044: tot_sac_fnf += np.sum(reservoir_obj.fnf[0:t])*30.0/(t+1)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_reservoir_obj->fnf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6044, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_t); __pyx_t_3 = __pyx_v_t; __pyx_t_5 = (__pyx_t_3 == Py_None); if (__pyx_t_5) { __pyx_t_7 = PY_SSIZE_T_MAX; } else { __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6044, __pyx_L1_error) __pyx_t_7 = __pyx_t_8; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyList_GetSlice(__pyx_v_reservoir_obj->fnf, 0, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_1, __pyx_float_30_0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_sac_fnf, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_tot_sac_fnf, __pyx_t_1); __pyx_t_1 = 0;
6045: else:
+6046: tot_sac_fnf += np.sum(reservoir_obj.fnf[(t-30):t])
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_reservoir_obj->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6046, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = (__pyx_t_3 == Py_None);
if (__pyx_t_5) {
__pyx_t_7 = 0;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6046, __pyx_L1_error)
__pyx_t_7 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_3 = __pyx_v_t;
__pyx_t_5 = (__pyx_t_3 == Py_None);
if (__pyx_t_5) {
__pyx_t_8 = PY_SSIZE_T_MAX;
} else {
__pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6046, __pyx_L1_error)
__pyx_t_8 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyList_GetSlice(__pyx_v_reservoir_obj->fnf, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_tot_sac_fnf, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_sac_fnf, __pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L5:;
+6047: for reservoir_obj in [self.newmelones, self.donpedro, self.exchequer, self.millerton]:
__pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self->newmelones)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->newmelones)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->newmelones)); __Pyx_INCREF(((PyObject *)__pyx_v_self->donpedro)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->donpedro)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->donpedro)); __Pyx_INCREF(((PyObject *)__pyx_v_self->exchequer)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->exchequer)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->exchequer)); __Pyx_INCREF(((PyObject *)__pyx_v_self->millerton)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->millerton)); PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->millerton)); __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_4 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 6047, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_reservoir_obj, ((struct __pyx_obj_11calfews_src_12reservoir_cy_Reservoir *)__pyx_t_2)); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6048: if t < 30:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6048, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L8; }
+6049: tot_sj_fnf += np.sum(reservoir_obj.fnf[0:t])*30.0/(t+1)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_reservoir_obj->fnf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6049, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_t); __pyx_t_1 = __pyx_v_t; __pyx_t_5 = (__pyx_t_1 == Py_None); if (__pyx_t_5) { __pyx_t_8 = PY_SSIZE_T_MAX; } else { __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6049, __pyx_L1_error) __pyx_t_8 = __pyx_t_7; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_reservoir_obj->fnf, 0, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_float_30_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tot_sj_fnf, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_tot_sj_fnf, __pyx_t_2); __pyx_t_2 = 0;
6050: else:
+6051: tot_sj_fnf += np.sum(reservoir_obj.fnf[(t-30):t])
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_reservoir_obj->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6051, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = (__pyx_t_1 == Py_None);
if (__pyx_t_5) {
__pyx_t_8 = 0;
} else {
__pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6051, __pyx_L1_error)
__pyx_t_8 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_1 = __pyx_v_t;
__pyx_t_5 = (__pyx_t_1 == Py_None);
if (__pyx_t_5) {
__pyx_t_7 = PY_SSIZE_T_MAX;
} else {
__pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6051, __pyx_L1_error)
__pyx_t_7 = __pyx_t_10;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_reservoir_obj->fnf, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_tot_sj_fnf, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_tot_sj_fnf, __pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L8:;
6052:
+6053: for x in range(0, 12):
for (__pyx_t_11 = 0; __pyx_t_11 < 12; __pyx_t_11+=1) {
__pyx_v_x = __pyx_t_11;
+6054: if x >= m:
__pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_x); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_v_m, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6054, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6054, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L11; }
+6055: daysmonth = self.days_in_month[year_index][x]
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6055, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6055, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_6);
__pyx_t_6 = 0;
6056: else:
+6057: daysmonth = self.days_in_month[year_index + 1][x]
/*else*/ {
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6057, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L11:;
+6058: proj_surplus[x] = max(self.delta_gains_regression['slope'][dowy][x]*min(tot_sac_fnf,4.0) + self.delta_gains_regression['intercept'][dowy][x], 0.0)
__pyx_t_12 = 0.0;
if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6058, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_slope); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_13 = 4.0;
__Pyx_INCREF(__pyx_v_tot_sac_fnf);
__pyx_t_3 = __pyx_v_tot_sac_fnf;
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_5) {
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __pyx_t_9;
__pyx_t_9 = 0;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->delta_gains_regression == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6058, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta_gains_regression, __pyx_n_u_intercept); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_5) {
__pyx_t_9 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __pyx_t_9;
__pyx_t_9 = 0;
} else {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_2 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_2;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_v_proj_surplus, __pyx_v_x, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6058, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6059: proj_omr[x] = (self.delta.omr_regression['slope'][dowy][x]*tot_sj_fnf + self.delta.omr_regression['intercept'][dowy][x] + 5000.0*cfs_tafd*daysmonth)/0.94
if (unlikely(__pyx_v_self->delta->omr_regression == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6059, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->omr_regression, __pyx_n_u_slope); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_v_tot_sj_fnf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_v_self->delta->omr_regression == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6059, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->omr_regression, __pyx_n_u_intercept); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Add(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = PyNumber_Multiply(__pyx_float_5000_0, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_2, __pyx_float_0_94, 0.94, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__Pyx_SetItemInt(__pyx_v_proj_omr, __pyx_v_x, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6059, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
+6060: expected_pumping = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_expected_pumping = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+6061: expected_pumping['cvp'] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp, __pyx_t_6) < 0)) __PYX_ERR(0, 6061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6062: expected_pumping['swp'] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_swp, __pyx_t_6) < 0)) __PYX_ERR(0, 6062, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6063: max_pumping = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_max_pumping = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+6064: max_pumping['cvp'] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_int_12); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pumping, __pyx_n_u_cvp, __pyx_t_6) < 0)) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6065: max_pumping['swp'] = np.zeros(12)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_v_max_pumping, __pyx_n_u_swp, __pyx_t_6) < 0)) __PYX_ERR(0, 6065, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6066:
6067:
+6068: for monthloop in range(0,12):
for (__pyx_t_11 = 0; __pyx_t_11 < 12; __pyx_t_11+=1) {
__pyx_v_monthloop = __pyx_t_11;
+6069: if monthloop >= m:
__pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_monthloop); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_m, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L14; }
+6070: daysmonth = self.days_in_month[year_index][monthloop]
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6070, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6070, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_6);
__pyx_t_6 = 0;
6071: else:
+6072: daysmonth = self.days_in_month[year_index + 1][monthloop]
/*else*/ {
if (unlikely(__pyx_v_self->days_in_month == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6072, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->days_in_month, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6072, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L14:;
+6073: if proj_surplus[monthloop]*0.55 > self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth:
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_float_0_55); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6073, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L15; }
+6074: expected_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6074, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6074, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+6075: expected_pumping['swp'][monthloop] = min(self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth, proj_surplus[monthloop] - self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth)
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6075, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Subtract(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6075, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6075, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { __Pyx_INCREF(__pyx_t_6); __pyx_t_2 = __pyx_t_6; } else { __Pyx_INCREF(__pyx_t_9); __pyx_t_2 = __pyx_t_9; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6076: else:
+6077: expected_pumping['cvp'][monthloop] = proj_surplus[monthloop]*0.55
/*else*/ {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_float_0_55); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6077, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6078: expected_pumping['swp'][monthloop] = proj_surplus[monthloop]*0.45
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyNumber_Multiply(__pyx_t_2, __pyx_float_0_45); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6078, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_L15:;
6079:
+6080: if monthloop < 6 and year_index + self.starting_year > self.delta.omr_rule_start:
__pyx_t_14 = ((__pyx_v_monthloop < 6) != 0);
if (__pyx_t_14) {
} else {
__pyx_t_5 = __pyx_t_14;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->starting_year); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6080, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = PyNumber_Add(__pyx_v_year_index, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6080, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->delta->omr_rule_start); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6080, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6080, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 6080, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_5 = __pyx_t_14;
__pyx_L17_bool_binop_done:;
if (__pyx_t_5) {
/* … */
goto __pyx_L16;
}
+6081: if proj_omr[monthloop]*0.5 > self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth:
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = PyNumber_Multiply(__pyx_t_9, __pyx_float_0_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6081, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6081, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L19; }
+6082: max_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6082, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6082, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6083: max_pumping['swp'][monthloop] = min(self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth, proj_omr[monthloop] - self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth)
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6083, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_9, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Subtract(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6083, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_9, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6083, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = __pyx_t_9; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_t_6; __Pyx_INCREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_v_monthloop, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6084: else:
+6085: max_pumping['cvp'][monthloop] = proj_omr[monthloop]*0.5
/*else*/ {
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_9, __pyx_float_0_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_v_monthloop, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6085, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6086: max_pumping['swp'][monthloop] = proj_omr[monthloop]*0.5
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_float_0_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_SetItemInt(__pyx_t_6, __pyx_v_monthloop, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_L19:;
6087:
6088: else:
+6089: max_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
/*else*/ {
if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6089, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_cvp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = PyNumber_Multiply(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6089, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6090: max_pumping['swp'][monthloop] = self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth
if (unlikely(__pyx_v_self->delta->pump_max == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6090, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->delta->pump_max, __pyx_n_u_swp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_9, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 6090, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L16:;
}
6091:
+6092: return expected_pumping, max_pumping
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_expected_pumping); __Pyx_GIVEREF(__pyx_v_expected_pumping); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_expected_pumping); __Pyx_INCREF(__pyx_v_max_pumping); __Pyx_GIVEREF(__pyx_v_max_pumping); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_max_pumping); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
6093:
6094:
+6095: def find_wyt(self,index):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_97find_wyt(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_97find_wyt(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_wyt (wrapper)", 0);
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_96find_wyt(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), ((PyObject *)__pyx_v_index));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_96find_wyt(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_index) {
PyObject *__pyx_v_wyt = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("find_wyt", 0);
__Pyx_TraceCall("find_wyt", __pyx_f[0], 6095, 0, __PYX_ERR(0, 6095, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("calfews_src.model_cy.Model.find_wyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_wyt);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+6096: if index <= 2.1:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_2_1, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6096, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+6097: wyt = "C"
__Pyx_INCREF(__pyx_n_u_C);
__pyx_v_wyt = __pyx_n_u_C;
+6098: self.isabella.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->isabella->forecastWYT); __Pyx_DECREF(__pyx_v_self->isabella->forecastWYT); __pyx_v_self->isabella->forecastWYT = __pyx_n_u_C;
+6099: self.success.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->success->forecastWYT); __Pyx_DECREF(__pyx_v_self->success->forecastWYT); __pyx_v_self->success->forecastWYT = __pyx_n_u_C;
+6100: self.kaweah.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->kaweah->forecastWYT); __Pyx_DECREF(__pyx_v_self->kaweah->forecastWYT); __pyx_v_self->kaweah->forecastWYT = __pyx_n_u_C;
+6101: self.millerton.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->millerton->forecastWYT); __Pyx_DECREF(__pyx_v_self->millerton->forecastWYT); __pyx_v_self->millerton->forecastWYT = __pyx_n_u_C;
+6102: elif index <= 2.5:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_2_5, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6102, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+6103: wyt = "D"
__Pyx_INCREF(__pyx_n_u_D);
__pyx_v_wyt = __pyx_n_u_D;
+6104: self.isabella.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->isabella->forecastWYT); __Pyx_DECREF(__pyx_v_self->isabella->forecastWYT); __pyx_v_self->isabella->forecastWYT = __pyx_n_u_D;
+6105: self.success.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->success->forecastWYT); __Pyx_DECREF(__pyx_v_self->success->forecastWYT); __pyx_v_self->success->forecastWYT = __pyx_n_u_D;
+6106: self.kaweah.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->kaweah->forecastWYT); __Pyx_DECREF(__pyx_v_self->kaweah->forecastWYT); __pyx_v_self->kaweah->forecastWYT = __pyx_n_u_D;
+6107: self.millerton.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->millerton->forecastWYT); __Pyx_DECREF(__pyx_v_self->millerton->forecastWYT); __pyx_v_self->millerton->forecastWYT = __pyx_n_u_D;
+6108: elif index <= 3.1:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_3_1, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6108, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+6109: wyt = "BN"
__Pyx_INCREF(__pyx_n_u_BN);
__pyx_v_wyt = __pyx_n_u_BN;
+6110: self.isabella.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->isabella->forecastWYT); __Pyx_DECREF(__pyx_v_self->isabella->forecastWYT); __pyx_v_self->isabella->forecastWYT = __pyx_n_u_BN;
+6111: self.success.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->success->forecastWYT); __Pyx_DECREF(__pyx_v_self->success->forecastWYT); __pyx_v_self->success->forecastWYT = __pyx_n_u_BN;
+6112: self.kaweah.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->kaweah->forecastWYT); __Pyx_DECREF(__pyx_v_self->kaweah->forecastWYT); __pyx_v_self->kaweah->forecastWYT = __pyx_n_u_BN;
+6113: self.millerton.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->millerton->forecastWYT); __Pyx_DECREF(__pyx_v_self->millerton->forecastWYT); __pyx_v_self->millerton->forecastWYT = __pyx_n_u_BN;
+6114: elif index <= 3.8:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_3_8, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6114, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+6115: wyt = "AN"
__Pyx_INCREF(__pyx_n_u_AN);
__pyx_v_wyt = __pyx_n_u_AN;
+6116: self.isabella.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->isabella->forecastWYT); __Pyx_DECREF(__pyx_v_self->isabella->forecastWYT); __pyx_v_self->isabella->forecastWYT = __pyx_n_u_AN;
+6117: self.success.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->success->forecastWYT); __Pyx_DECREF(__pyx_v_self->success->forecastWYT); __pyx_v_self->success->forecastWYT = __pyx_n_u_AN;
+6118: self.kaweah.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->kaweah->forecastWYT); __Pyx_DECREF(__pyx_v_self->kaweah->forecastWYT); __pyx_v_self->kaweah->forecastWYT = __pyx_n_u_AN;
+6119: self.millerton.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->millerton->forecastWYT); __Pyx_DECREF(__pyx_v_self->millerton->forecastWYT); __pyx_v_self->millerton->forecastWYT = __pyx_n_u_AN;
6120: else:
+6121: wyt = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__pyx_v_wyt = __pyx_n_u_W;
+6122: self.isabella.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->isabella->forecastWYT); __Pyx_DECREF(__pyx_v_self->isabella->forecastWYT); __pyx_v_self->isabella->forecastWYT = __pyx_n_u_W;
+6123: self.success.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->success->forecastWYT); __Pyx_DECREF(__pyx_v_self->success->forecastWYT); __pyx_v_self->success->forecastWYT = __pyx_n_u_W;
+6124: self.kaweah.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->kaweah->forecastWYT); __Pyx_DECREF(__pyx_v_self->kaweah->forecastWYT); __pyx_v_self->kaweah->forecastWYT = __pyx_n_u_W;
+6125: self.millerton.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->millerton->forecastWYT); __Pyx_DECREF(__pyx_v_self->millerton->forecastWYT); __pyx_v_self->millerton->forecastWYT = __pyx_n_u_W; } __pyx_L3:;
+6126: return wyt
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_wyt); __pyx_r = __pyx_v_wyt; goto __pyx_L0;
6127:
+6128: def calc_wytypes(self,t,dowy):
/* Python wrapper */
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_99calc_wytypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11calfews_src_8model_cy_5Model_99calc_wytypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_dowy = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("calc_wytypes (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_dowy,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("calc_wytypes", 1, 2, 2, 1); __PYX_ERR(0, 6128, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_wytypes") < 0)) __PYX_ERR(0, 6128, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_t = values[0];
__pyx_v_dowy = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("calc_wytypes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6128, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("calfews_src.model_cy.Model.calc_wytypes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11calfews_src_8model_cy_5Model_98calc_wytypes(((struct __pyx_obj_11calfews_src_8model_cy_Model *)__pyx_v_self), __pyx_v_t, __pyx_v_dowy);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11calfews_src_8model_cy_5Model_98calc_wytypes(struct __pyx_obj_11calfews_src_8model_cy_Model *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy) {
PyObject *__pyx_v_eos_date = NULL;
PyObject *__pyx_v_yubaIndex = NULL;
PyObject *__pyx_v_folsomIndex = NULL;
PyObject *__pyx_v_eof_storage = NULL;
PyObject *__pyx_v_newmelonesIndex = NULL;
PyObject *__pyx_r = NULL;
__Pyx_TraceDeclarations
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("calc_wytypes", 0);
__Pyx_TraceCall("calc_wytypes", __pyx_f[0], 6128, 0, __PYX_ERR(0, 6128, __pyx_L1_error));
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("calfews_src.model_cy.Model.calc_wytypes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_eos_date);
__Pyx_XDECREF(__pyx_v_yubaIndex);
__Pyx_XDECREF(__pyx_v_folsomIndex);
__Pyx_XDECREF(__pyx_v_eof_storage);
__Pyx_XDECREF(__pyx_v_newmelonesIndex);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_TraceReturn(__pyx_r, 0);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6129:
6130: ####NOTE: Full natural flow data is in MAF, inflow data is in TAF
6131: ##Index for Shasta Min Flows
6132: ############################
+6133: if self.delta.forecastSRI[t] <= 5.4:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6133, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6133, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6133, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6133, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+6134: self.shasta.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->shasta->forecastWYT); __Pyx_DECREF(__pyx_v_self->shasta->forecastWYT); __pyx_v_self->shasta->forecastWYT = __pyx_n_u_C;
+6135: self.delta.forecastSCWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSCWYT); __pyx_v_self->delta->forecastSCWYT = __pyx_n_u_C;
+6136: elif self.delta.forecastSRI[t] <= 6.6:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6136, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6136, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_6_6, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6136, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6136, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+6137: self.shasta.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->shasta->forecastWYT); __Pyx_DECREF(__pyx_v_self->shasta->forecastWYT); __pyx_v_self->shasta->forecastWYT = __pyx_n_u_D;
+6138: self.delta.forecastSCWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSCWYT); __pyx_v_self->delta->forecastSCWYT = __pyx_n_u_D;
+6139: elif self.delta.forecastSRI[t] <= 7.8:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6139, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_7_8, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+6140: self.shasta.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->shasta->forecastWYT); __Pyx_DECREF(__pyx_v_self->shasta->forecastWYT); __pyx_v_self->shasta->forecastWYT = __pyx_n_u_BN;
+6141: self.delta.forecastSCWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSCWYT); __pyx_v_self->delta->forecastSCWYT = __pyx_n_u_BN;
+6142: elif self.delta.forecastSRI[t] <= 9.2:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6142, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_9_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6142, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6142, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+6143: self.shasta.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->shasta->forecastWYT); __Pyx_DECREF(__pyx_v_self->shasta->forecastWYT); __pyx_v_self->shasta->forecastWYT = __pyx_n_u_AN;
+6144: self.delta.forecastSCWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSCWYT); __pyx_v_self->delta->forecastSCWYT = __pyx_n_u_AN;
6145: else:
+6146: self.shasta.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->shasta->forecastWYT);
__Pyx_DECREF(__pyx_v_self->shasta->forecastWYT);
__pyx_v_self->shasta->forecastWYT = __pyx_n_u_W;
+6147: self.delta.forecastSCWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->delta->forecastSCWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSCWYT); __pyx_v_self->delta->forecastSCWYT = __pyx_n_u_W; } __pyx_L3:;
6148:
6149: ##Index for Oroville Min Flows
6150: ############################
+6151: if self.oroville.snowflood_fnf[t] < 0.55*1.942:
if (unlikely(__pyx_v_self->oroville->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6151, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->oroville->snowflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble((0.55 * 1.942)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L4;
}
+6152: self.oroville.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->oroville->forecastWYT); __Pyx_DECREF(__pyx_v_self->oroville->forecastWYT); __pyx_v_self->oroville->forecastWYT = __pyx_n_u_D;
6153: else:
+6154: self.oroville.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->oroville->forecastWYT);
__Pyx_DECREF(__pyx_v_self->oroville->forecastWYT);
__pyx_v_self->oroville->forecastWYT = __pyx_n_u_W;
}
__pyx_L4:;
6155:
+6156: if self.delta.forecastSRI[t] <= 5.4:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6156, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6156, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6156, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6156, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
}
+6157: self.oroville.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->oroville->forecastWYT); __Pyx_DECREF(__pyx_v_self->oroville->forecastWYT); __pyx_v_self->oroville->forecastWYT = __pyx_n_u_C;
6158:
6159: ##Index for Yuba Min Flows
6160: ############################
+6161: eos_date = t - dowy
__pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_eos_date = __pyx_t_2; __pyx_t_2 = 0;
+6162: if eos_date < 0:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_eos_date, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6162, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ }
+6163: eos_date = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_eos_date, __pyx_int_0);
6164:
+6165: yubaIndex = (self.yuba.rainflood_fnf[t] + self.yuba.snowflood_fnf[t])*1000 + self.yuba.S[eos_date] - 234.0
if (unlikely(__pyx_v_self->yuba->rainflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6165, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->rainflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->yuba->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6165, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->snowflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_int_1000); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_v_self->yuba->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6165, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->yuba->S, __pyx_v_eos_date); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_2, __pyx_float_234_0, 234.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6165, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_yubaIndex = __pyx_t_1;
__pyx_t_1 = 0;
+6166: if yubaIndex >= 1400:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_1400, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6166, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+6167: self.yuba.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT); __Pyx_DECREF(__pyx_v_self->yuba->forecastWYT); __pyx_v_self->yuba->forecastWYT = __pyx_n_u_W;
+6168: elif yubaIndex >= 1040:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_1040, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6168, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+6169: self.yuba.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT); __Pyx_DECREF(__pyx_v_self->yuba->forecastWYT); __pyx_v_self->yuba->forecastWYT = __pyx_n_u_AN;
+6170: elif yubaIndex >= 920:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_920, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6170, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+6171: self.yuba.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT); __Pyx_DECREF(__pyx_v_self->yuba->forecastWYT); __pyx_v_self->yuba->forecastWYT = __pyx_n_u_BN;
+6172: elif yubaIndex >= 820:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_820, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6172, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+6173: self.yuba.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT); __Pyx_DECREF(__pyx_v_self->yuba->forecastWYT); __pyx_v_self->yuba->forecastWYT = __pyx_n_u_D;
+6174: elif yubaIndex >= 693:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_693, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6174, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+6175: self.yuba.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT); __Pyx_DECREF(__pyx_v_self->yuba->forecastWYT); __pyx_v_self->yuba->forecastWYT = __pyx_n_u_C;
6176: else:
+6177: self.yuba.forecastWYT = "EC"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_EC);
__Pyx_GIVEREF(__pyx_n_u_EC);
__Pyx_GOTREF(__pyx_v_self->yuba->forecastWYT);
__Pyx_DECREF(__pyx_v_self->yuba->forecastWYT);
__pyx_v_self->yuba->forecastWYT = __pyx_n_u_EC;
}
__pyx_L7:;
6178:
6179: ##Index for Folsom Min Flows
6180: ############################
6181: ##Folsom has the most ridiculous operating rules, and combines a bunch of different 'indicies' throughout the year to determine min flows
+6182: if dowy < 91:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_91, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6182, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L8; }
+6183: folsomIndex = self.folsom.S[eos_date] + (361.701 - self.folsom.fci[eos_date])
if (unlikely(__pyx_v_self->folsom->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6183, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->S, __pyx_v_eos_date); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->folsom->fci == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6183, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->fci, __pyx_v_eos_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_361_701, __pyx_t_2, 361.701, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_folsomIndex = __pyx_t_2;
__pyx_t_2 = 0;
+6184: if folsomIndex >= 848:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_848, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6184, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L9; }
+6185: self.folsom.forecastWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_W;
+6186: elif folsomIndex >= 746:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6186, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L9; }
+6187: self.folsom.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_AN;
+6188: elif folsomIndex >= 600:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6188, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L9; }
+6189: self.folsom.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_BN;
+6190: elif folsomIndex >= 300:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_300, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6190, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L9; }
+6191: self.folsom.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_D;
6192: else:
+6193: self.folsom.forecastWYT = "C"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_C);
__Pyx_GIVEREF(__pyx_n_u_C);
__Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT);
__Pyx_DECREF(__pyx_v_self->folsom->forecastWYT);
__pyx_v_self->folsom->forecastWYT = __pyx_n_u_C;
}
__pyx_L9:;
+6194: elif dowy < 150:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_150, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6194, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6194, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L8; }
+6195: folsomIndex = self.folsom.S[eos_date] + (361.701 - self.folsom.fci[eos_date])
if (unlikely(__pyx_v_self->folsom->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6195, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->S, __pyx_v_eos_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->folsom->fci == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6195, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->fci, __pyx_v_eos_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_361_701, __pyx_t_4, 361.701, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_folsomIndex = __pyx_t_4;
__pyx_t_4 = 0;
+6196: if self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 600:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6196, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6196, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L11_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+6197: self.folsom.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_C;
+6198: elif self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 746:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6198, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_4 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6198, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L13_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+6199: self.folsom.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_D;
+6200: elif self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 848:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6200, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_848, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6200, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L15_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+6201: self.folsom.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_AN;
+6202: elif self.delta.forecastSRI[t] < 7.8 and folsomIndex < 600:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6202, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6202, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_7_8, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6202, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6202, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_4 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6202, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6202, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L17_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+6203: self.folsom.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_D;
+6204: elif self.delta.forecastSRI[t] < 7.8 and folsomIndex < 746:
if (unlikely(__pyx_v_self->delta->forecastSRI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6204, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSRI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_7_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6204, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6204, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L19_bool_binop_done;
}
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6204, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6204, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L19_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+6205: self.folsom.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_BN;
6206: else:
+6207: self.folsom.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT);
__Pyx_DECREF(__pyx_v_self->folsom->forecastWYT);
__pyx_v_self->folsom->forecastWYT = __pyx_n_u_W;
}
__pyx_L10:;
6208: else:
+6209: folsomIndex = (self.folsom.snowflood_fnf[t] - sum(self.folsom.fnf[(t-dowy+181):(t-dowy+211)]) + sum(self.folsom.fnf[(t-dowy+304):(t-dowy+364)]))*1000
/*else*/ {
if (unlikely(__pyx_v_self->folsom->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6209, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->folsom->snowflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->folsom->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6209, __pyx_L1_error)
}
__pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_181, 0xB5, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = (__pyx_t_2 == Py_None);
if (__pyx_t_3) {
__pyx_t_6 = 0;
} else {
__pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6209, __pyx_L1_error)
__pyx_t_6 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_211, 0xD3, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = (__pyx_t_4 == Py_None);
if (__pyx_t_3) {
__pyx_t_7 = PY_SSIZE_T_MAX;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6209, __pyx_L1_error)
__pyx_t_7 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyList_GetSlice(__pyx_v_self->folsom->fnf, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->folsom->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6209, __pyx_L1_error)
}
__pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_304, 0x130, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = (__pyx_t_1 == Py_None);
if (__pyx_t_3) {
__pyx_t_7 = 0;
} else {
__pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6209, __pyx_L1_error)
__pyx_t_7 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (__pyx_t_2 == Py_None);
if (__pyx_t_3) {
__pyx_t_6 = PY_SSIZE_T_MAX;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6209, __pyx_L1_error)
__pyx_t_6 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyList_GetSlice(__pyx_v_self->folsom->fnf, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_int_1000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_folsomIndex = __pyx_t_1;
__pyx_t_1 = 0;
+6210: if folsomIndex < 250:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_250, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6210, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+6211: self.folsom.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_C;
+6212: elif folsomIndex < 375:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_375, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6212, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6212, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+6213: self.folsom.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_D;
+6214: elif folsomIndex < 460:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_460, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6214, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6214, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+6215: self.folsom.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_BN;
+6216: elif folsomIndex < 550:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_550, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6216, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+6217: self.folsom.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT); __Pyx_DECREF(__pyx_v_self->folsom->forecastWYT); __pyx_v_self->folsom->forecastWYT = __pyx_n_u_AN;
6218: else:
+6219: self.folsom.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->folsom->forecastWYT);
__Pyx_DECREF(__pyx_v_self->folsom->forecastWYT);
__pyx_v_self->folsom->forecastWYT = __pyx_n_u_W;
}
__pyx_L21:;
}
__pyx_L8:;
6220:
6221: ##Index for New Melones Min Flows
6222: ############################
+6223: if dowy <= 150:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_150, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6223, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L22; }
+6224: eof_storage = t - dowy - 215
__pyx_t_1 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_215, 0xD7, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_eof_storage = __pyx_t_2; __pyx_t_2 = 0;
+6225: if eof_storage < 0:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_eof_storage, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6225, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ }
+6226: eof_storage == 0
__pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_eof_storage, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6227: newmelonesIndex = self.newmelones.S[eof_storage] + sum(self.newmelones.fnf[(eof_storage+1):(t-dowy)])*1000
if (unlikely(__pyx_v_self->newmelones->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6227, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->newmelones->S, __pyx_v_eof_storage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__pyx_v_self->newmelones->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6227, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_eof_storage, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = (__pyx_t_1 == Py_None);
if (__pyx_t_3) {
__pyx_t_6 = 0;
} else {
__pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6227, __pyx_L1_error)
__pyx_t_6 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = (__pyx_t_1 == Py_None);
if (__pyx_t_3) {
__pyx_t_7 = PY_SSIZE_T_MAX;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6227, __pyx_L1_error)
__pyx_t_7 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_self->newmelones->fnf, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_int_1000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_newmelonesIndex = __pyx_t_4;
__pyx_t_4 = 0;
6228: else:
+6229: eof_storage = t - dowy + 149
/*else*/ {
__pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_149, 0x95, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_eof_storage = __pyx_t_1;
__pyx_t_1 = 0;
+6230: newmelonesIndex = self.newmelones.S[eof_storage] + (sum(self.newmelones.fnf[(eof_storage+1):(t-dowy+181)]) + self.newmelones.snowflood_fnf[t] + sum(self.newmelones.fnf[(t-dowy+304):(t-dowy+365)]))*1000
if (unlikely(__pyx_v_self->newmelones->S == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6230, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->newmelones->S, __pyx_v_eof_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_self->newmelones->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6230, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_eof_storage, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = (__pyx_t_4 == Py_None);
if (__pyx_t_3) {
__pyx_t_7 = 0;
} else {
__pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6230, __pyx_L1_error)
__pyx_t_7 = __pyx_t_6;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_181, 0xB5, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = (__pyx_t_2 == Py_None);
if (__pyx_t_3) {
__pyx_t_6 = PY_SSIZE_T_MAX;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6230, __pyx_L1_error)
__pyx_t_6 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyList_GetSlice(__pyx_v_self->newmelones->fnf, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->newmelones->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6230, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->newmelones->snowflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_v_self->newmelones->fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6230, __pyx_L1_error)
}
__pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_304, 0x130, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = (__pyx_t_4 == Py_None);
if (__pyx_t_3) {
__pyx_t_6 = 0;
} else {
__pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6230, __pyx_L1_error)
__pyx_t_6 = __pyx_t_7;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = (__pyx_t_2 == Py_None);
if (__pyx_t_3) {
__pyx_t_7 = PY_SSIZE_T_MAX;
} else {
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6230, __pyx_L1_error)
__pyx_t_7 = __pyx_t_8;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyList_GetSlice(__pyx_v_self->newmelones->fnf, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_int_1000); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_newmelonesIndex = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_L22:;
6231:
+6232: if newmelonesIndex < 1400:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_1400, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6232, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L24; }
+6233: self.newmelones.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->newmelones->forecastWYT); __Pyx_DECREF(__pyx_v_self->newmelones->forecastWYT); __pyx_v_self->newmelones->forecastWYT = __pyx_n_u_C;
+6234: elif newmelonesIndex < 2000:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_2000, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6234, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L24; }
+6235: self.newmelones.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->newmelones->forecastWYT); __Pyx_DECREF(__pyx_v_self->newmelones->forecastWYT); __pyx_v_self->newmelones->forecastWYT = __pyx_n_u_D;
+6236: elif newmelonesIndex < 2500:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_2500, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6236, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L24; }
+6237: self.newmelones.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->newmelones->forecastWYT); __Pyx_DECREF(__pyx_v_self->newmelones->forecastWYT); __pyx_v_self->newmelones->forecastWYT = __pyx_n_u_BN;
+6238: elif newmelonesIndex < 3000:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_3000, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6238, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6238, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L24; }
+6239: self.newmelones.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->newmelones->forecastWYT); __Pyx_DECREF(__pyx_v_self->newmelones->forecastWYT); __pyx_v_self->newmelones->forecastWYT = __pyx_n_u_AN;
6240: else:
+6241: self.newmelones.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->newmelones->forecastWYT);
__Pyx_DECREF(__pyx_v_self->newmelones->forecastWYT);
__pyx_v_self->newmelones->forecastWYT = __pyx_n_u_W;
}
__pyx_L24:;
6242:
6243: ##Index for Don Pedro Min Flows
6244: ############################
+6245: if self.delta.forecastSJI[t] <= 2.1:
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6245, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSJI, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float_2_1, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6245, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6245, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L25;
}
+6246: self.donpedro.forecastWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->donpedro->forecastWYT); __Pyx_DECREF(__pyx_v_self->donpedro->forecastWYT); __pyx_v_self->donpedro->forecastWYT = __pyx_n_u_C;
+6247: self.delta.forecastSJWYT = "C"
__Pyx_INCREF(__pyx_n_u_C); __Pyx_GIVEREF(__pyx_n_u_C); __Pyx_GOTREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSJWYT); __pyx_v_self->delta->forecastSJWYT = __pyx_n_u_C;
+6248: elif self.delta.forecastSJI[t] <= 2.5:
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6248, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSJI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6248, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_float_2_5, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6248, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6248, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L25;
}
+6249: self.donpedro.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->donpedro->forecastWYT); __Pyx_DECREF(__pyx_v_self->donpedro->forecastWYT); __pyx_v_self->donpedro->forecastWYT = __pyx_n_u_D;
+6250: self.delta.forecastSJWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSJWYT); __pyx_v_self->delta->forecastSJWYT = __pyx_n_u_D;
+6251: elif self.delta.forecastSJI[t] <= 3.1:
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6251, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSJI, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float_3_1, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L25;
}
+6252: self.donpedro.forecastWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->donpedro->forecastWYT); __Pyx_DECREF(__pyx_v_self->donpedro->forecastWYT); __pyx_v_self->donpedro->forecastWYT = __pyx_n_u_BN;
+6253: self.delta.forecastSJWYT = "BN"
__Pyx_INCREF(__pyx_n_u_BN); __Pyx_GIVEREF(__pyx_n_u_BN); __Pyx_GOTREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSJWYT); __pyx_v_self->delta->forecastSJWYT = __pyx_n_u_BN;
+6254: elif self.delta.forecastSJI[t] <= 3.8:
if (unlikely(__pyx_v_self->delta->forecastSJI == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6254, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->delta->forecastSJI, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_float_3_8, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6254, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6254, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L25;
}
+6255: self.donpedro.forecastWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->donpedro->forecastWYT); __Pyx_DECREF(__pyx_v_self->donpedro->forecastWYT); __pyx_v_self->donpedro->forecastWYT = __pyx_n_u_AN;
+6256: self.delta.forecastSJWYT = "AN"
__Pyx_INCREF(__pyx_n_u_AN); __Pyx_GIVEREF(__pyx_n_u_AN); __Pyx_GOTREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSJWYT); __pyx_v_self->delta->forecastSJWYT = __pyx_n_u_AN;
6257: else:
+6258: self.donpedro.forecastWYT = "W"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_W);
__Pyx_GIVEREF(__pyx_n_u_W);
__Pyx_GOTREF(__pyx_v_self->donpedro->forecastWYT);
__Pyx_DECREF(__pyx_v_self->donpedro->forecastWYT);
__pyx_v_self->donpedro->forecastWYT = __pyx_n_u_W;
+6259: self.delta.forecastSJWYT = "W"
__Pyx_INCREF(__pyx_n_u_W); __Pyx_GIVEREF(__pyx_n_u_W); __Pyx_GOTREF(__pyx_v_self->delta->forecastSJWYT); __Pyx_DECREF(__pyx_v_self->delta->forecastSJWYT); __pyx_v_self->delta->forecastSJWYT = __pyx_n_u_W; } __pyx_L25:;
6260:
6261:
6262: ##Index for Exchequer Min Flows
6263: ############################
+6264: if self.exchequer.snowflood_fnf[t] < .45:
if (unlikely(__pyx_v_self->exchequer->snowflood_fnf == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6264, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->exchequer->snowflood_fnf, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float__45, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6264, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6264, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_3) {
/* … */
goto __pyx_L26;
}
+6265: self.exchequer.forecastWYT = "D"
__Pyx_INCREF(__pyx_n_u_D); __Pyx_GIVEREF(__pyx_n_u_D); __Pyx_GOTREF(__pyx_v_self->exchequer->forecastWYT); __Pyx_DECREF(__pyx_v_self->exchequer->forecastWYT); __pyx_v_self->exchequer->forecastWYT = __pyx_n_u_D;
6266: else:
+6267: self.exchequer.forecastWYT = "AN"
/*else*/ {
__Pyx_INCREF(__pyx_n_u_AN);
__Pyx_GIVEREF(__pyx_n_u_AN);
__Pyx_GOTREF(__pyx_v_self->exchequer->forecastWYT);
__Pyx_DECREF(__pyx_v_self->exchequer->forecastWYT);
__pyx_v_self->exchequer->forecastWYT = __pyx_n_u_AN;
}
__pyx_L26:;
6268:
+6269: return newmelonesIndex
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_newmelonesIndex); __pyx_r = __pyx_v_newmelonesIndex; goto __pyx_L0;
6270:
6271: